Bug #74411 | void Protocol::end_statement(): Assertion `0' failed. DELETE IGNORE | ||
---|---|---|---|
Submitted: | 15 Oct 2014 22:17 | Modified: | 20 Nov 2019 21:21 |
Reporter: | Roel Van de Paar | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: DML | Severity: | S6 (Debug Builds) |
Version: | 5.6.20,5.6.25 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | debug |
[15 Oct 2014 22:17]
Roel Van de Paar
[15 Oct 2014 22:23]
Roel Van de Paar
Actually, this is more serious then I though. Re-start the server after the abort and you see this after standard crash recovery: 2014-10-16 19:19:43 7fede83e5740 InnoDB: Error: table `tmp`.`#sql40e0_1_0` does not exist in the InnoDB internal InnoDB: data dictionary though MySQL is trying to drop it. InnoDB: Have you copied the .frm file of the table to the InnoDB: MySQL database directory from another database? InnoDB: You can look for further help from InnoDB: http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html Still, the issue cannot be repeated with optimized
[15 Oct 2014 22:24]
Roel Van de Paar
I wonder if the secondary effect in the last comment is a situation not handled properly in InnoDB which could also show in other cases (I have seen this a number of times before... and likely so does support in customer's logs). A review of the code that should handle tmp* work InnoDB vs MySQL may not be wasted here.
[15 Oct 2014 23:44]
MySQL Verification Team
C:\dbs>c:\dbs\5.6\bin\mysql -uroot --port=3560 --debug-info --prompt="mysql 5.6 > " Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.22-debug Source distribution Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.6 > DROP DATABASE test;CREATE DATABASE test;USE test; Query OK, 1 row affected (1.38 sec) Query OK, 1 row affected (0.00 sec) Database changed mysql 5.6 > CREATE TEMPORARY TABLE t1(c1 INT); Query OK, 0 rows affected (0.06 sec) mysql 5.6 > SET @@sql_safe_updates=ON; Query OK, 0 rows affected (0.07 sec) mysql 5.6 > DELETE IGNORE FROM t1 WHERE c1=5; ERROR 2013 (HY000): Lost connection to MySQL server during query 2014-10-14 18:31:43 1044 [Note] C:\dbs\5.6\bin\mysqld: ready for connections. Version: '5.6.22-debug' socket: '' port: 3560 Source distribution Assertion failed: 0, file protocol.cc, line 518 23:35:06 UTC - mysqld got exception 0x80000003 ; <CUT> 7ff642964795 mysqld.exe!my_sigabrt_handler()[my_thr_init.c:458] 7ff642f3bfff mysqld.exe!raise()[winsig.c:594] 7ff642f48e10 mysqld.exe!abort()[abort.c:82] 7ff642f395cb mysqld.exe!_wassert()[assert.c:380] 7ff6424c365b mysqld.exe!Protocol::end_statement()[protocol.cc:518] 7ff6425ad9cd mysqld.exe!dispatch_command()[sql_parse.cc:1760] 7ff6425ab7a2 mysqld.exe!do_command()[sql_parse.cc:1034] 7ff6425fc402 mysqld.exe!do_handle_one_connection()[sql_connect.cc:982] 7ff6425fc232 mysqld.exe!handle_one_connection()[sql_connect.cc:899] 7ff642e16145 mysqld.exe!pfs_spawn_thread()[pfs.cc:1862] 7ff642962d36 mysqld.exe!pthread_start()[my_winthread.c:62] 7ff642f4c655 mysqld.exe!_callthreadstartex()[threadex.c:376] 7ff642f4c8a7 mysqld.exe!_threadstartex()[threadex.c:359] 7ffa83c116ad KERNEL32.DLL!BaseThreadInitThunk() 7ffa860634a5 ntdll.dll!RtlUserThreadStart() C:\dbs>c:\dbs\5.6\bin\mysql -uroot --port=3560 --debug-info --prompt="mysql 5.6 > " Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.22 Source distribution Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.6 > DROP DATABASE test;CREATE DATABASE test;USE test; Query OK, 0 rows affected (0.01 sec) Query OK, 1 row affected (0.00 sec) Database changed mysql 5.6 > CREATE TEMPORARY TABLE t1(c1 INT); Query OK, 0 rows affected (0.06 sec) mysql 5.6 > SET @@sql_safe_updates=ON; Query OK, 0 rows affected (0.00 sec) mysql 5.6 > DELETE IGNORE FROM t1 WHERE c1=5; Query OK, 0 rows affected (0.00 sec)
[16 Oct 2014 0:00]
MySQL Verification Team
C:\dbs>c:\dbs\5.5\bin\mysql -uroot --port=3550 --prompt="mysql 5.5 > " Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.41-debug Source distribution Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.5 > DROP DATABASE test;CREATE DATABASE test;USE test; Query OK, 1 row affected (0.16 sec) Query OK, 1 row affected (0.00 sec) Database changed mysql 5.5 > CREATE TEMPORARY TABLE t1(c1 INT); Query OK, 0 rows affected (0.16 sec) mysql 5.5 > SET @@sql_safe_updates=ON; Query OK, 0 rows affected (0.00 sec) mysql 5.5 > DELETE IGNORE FROM t1 WHERE c1=5; ERROR 2013 (HY000): Lost connection to MySQL server during query C:\dbs>c:\dbs\5.7\bin\mysql -uroot --port=3570 --prompt="mysql 5.7 > " Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.7.6-m16-debug Source distribution Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.7 > DROP DATABASE test;CREATE DATABASE test;USE test; ERROR 1008 (HY000): Can't drop database 'test'; database doesn't exist Query OK, 1 row affected (0.00 sec) Database changed mysql 5.7 > CREATE TEMPORARY TABLE t1(c1 INT); Query OK, 0 rows affected (0.01 sec) mysql 5.7 > SET @@sql_safe_updates=ON; Query OK, 0 rows affected (0.00 sec) mysql 5.7 > DELETE IGNORE FROM t1 WHERE c1=5; ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
[16 Oct 2014 0:01]
MySQL Verification Team
Thank you for the bug report.
[17 Oct 2015 5:11]
Roel Van de Paar
Updating version
[8 Nov 2016 0:55]
Roel Van de Paar
Any possibility of having this one fixed? Thank you
[20 Nov 2019 21:21]
Roy Lyseng
Posted by developer: Problem is not reproducible in 5.7.