Bug #88046 InnoDB: ALTER TABLE ... CHANGE ... cause mysql server crash
| Submitted: | 10 Oct 2017 13:50 | Modified: | 10 Oct 2017 16:50 |
|---|---|---|---|
| Reporter: | kfpanda kf | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: DDL | Severity: | S6 (Debug Builds) |
| Version: | 5.6.37 | OS: | Linux |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | debug | ||
[10 Oct 2017 16:50]
MySQL Verification Team
Thank you for the bug report . According your own comment, duplicate of bug https://bugs.mysql.com/bug.php?id=83799 which produces same callstack on debug server. 2017-10-10 13:29:38 6280 [Note] c:\dbs\5.6\bin\mysqld: ready for connections. Version: '5.6.39-debug-log' socket: '' port: 3560 Source distribution 2017-OCT-01 2017-10-10 13:30:47 6280 [ERROR] InnoDB: dict_load_foreigns() returned 38 for ALTER TABLE t1 CHANGE a2 a2_new INT,CHANGE a1 a1_new INT 2017-10-10 13:30:47 1a94 InnoDB: Assertion failure in thread 6804 in file handler0alter.cc line 5866 <cut> Thread pointer: 0x2b5d2ad2360 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... 7ff7a91e5205 mysqld.exe!my_sigabrt_handler()[my_thr_init.c:455] 7ffc1192fe21 ucrtbased.dll!raise() 7ffc11931979 ucrtbased.dll!abort() 7ff7a94f2032 mysqld.exe!ha_innobase::commit_inplace_alter_table()[handler0alter.cc:5866] 7ff7a8ced64b mysqld.exe!handler::ha_commit_inplace_alter_table()[handler.cc:4388] 7ff7a8e70114 mysqld.exe!mysql_inplace_alter_table()[sql_table.cc:6727] 7ff7a8e5cf54 mysqld.exe!mysql_alter_table()[sql_table.cc:8554] 7ff7a8fe9c9e mysqld.exe!Sql_cmd_alter_table::execute()[sql_alter.cc:307] 7ff7a8e222a3 mysqld.exe!mysql_execute_command()[sql_parse.cc:5026] 7ff7a8e1a4e2 mysqld.exe!mysql_parse()[sql_parse.cc:6444] 7ff7a8e23d5b mysqld.exe!dispatch_command()[sql_parse.cc:1376] 7ff7a8e22db7 mysqld.exe!do_command()[sql_parse.cc:1039] 7ff7a8e743f2 mysqld.exe!do_handle_one_connection()[sql_connect.cc:982] 7ff7a8e74222 mysqld.exe!handle_one_connection()[sql_connect.cc:900] 7ff7a96a3b25 mysqld.exe!pfs_spawn_thread()[pfs.cc:1863] 7ff7a91e3797 mysqld.exe!pthread_start()[my_winthread.c:62] 7ffc11938d48 ucrtbased.dll!_register_onexit_function() 7ffc11938991 ucrtbased.dll!_register_onexit_function() 7ffc5cb02774 KERNEL32.DLL!BaseThreadInitThunk() 7ffc5e110d51 ntdll.dll!RtlUserThreadStart() mysql 5.6 > DROP DATABASE test;CREATE DATABASE test;USE test; Query OK, 2 rows affected (0.04 sec) Query OK, 1 row affected (0.00 sec) Database changed mysql 5.6 > SET DEBUG='+d,innodb_test_open_ref_fail'; Query OK, 0 rows affected (0.00 sec) mysql 5.6 > SET @@SESSION.foreign_key_checks=0; Query OK, 0 rows affected (0.00 sec) mysql 5.6 > CREATE TABLE t2(b INT,c INT); Query OK, 0 rows affected (0.04 sec) mysql 5.6 > alter table t2 add constraint b foreign key(b)references t2(b); ERROR 2013 (HY000): Lost connection to MySQL server during query mysql 5.6 > 2017-10-10 13:39:40 fac InnoDB: Assertion failure in thread 4012 in file handler0alter.cc line 5866 where mysqld died. If you see no messages after this, something went terribly wrong... 7ff7a91e5205 mysqld.exe!my_sigabrt_handler()[my_thr_init.c:455] 7ffc11d2fe21 ucrtbased.dll!raise() 7ffc11d31979 ucrtbased.dll!abort() 7ff7a94f2032 mysqld.exe!ha_innobase::commit_inplace_alter_table()[handler0alter.cc:5866] 7ff7a8ced64b mysqld.exe!handler::ha_commit_inplace_alter_table()[handler.cc:4388] 7ff7a8e70114 mysqld.exe!mysql_inplace_alter_table()[sql_table.cc:6727] 7ff7a8e5cf54 mysqld.exe!mysql_alter_table()[sql_table.cc:8554] 7ff7a8fe9c9e mysqld.exe!Sql_cmd_alter_table::execute()[sql_alter.cc:307] 7ff7a8e222a3 mysqld.exe!mysql_execute_command()[sql_parse.cc:5026] 7ff7a8e1a4e2 mysqld.exe!mysql_parse()[sql_parse.cc:6444] 7ff7a8e23d5b mysqld.exe!dispatch_command()[sql_parse.cc:1376] 7ff7a8e22db7 mysqld.exe!do_command()[sql_parse.cc:1039] 7ff7a8e743f2 mysqld.exe!do_handle_one_connection()[sql_connect.cc:982] 7ff7a8e74222 mysqld.exe!handle_one_connection()[sql_connect.cc:900] 7ff7a96a3b25 mysqld.exe!pfs_spawn_thread()[pfs.cc:1863] 7ff7a91e3797 mysqld.exe!pthread_start()[my_winthread.c:62] 7ffc11d38d48 ucrtbased.dll!_register_onexit_function() 7ffc11d38991 ucrtbased.dll!_register_onexit_function() 7ffc5cb02774 KERNEL32.DLL!BaseThreadInitThunk() 7ffc5e110d51 ntdll.dll!RtlUserThreadStart()
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.042 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: #0 0x00007f99a4590741 in pthread_kill () from /lib64/libpthread.so.0 #1 0x0000000000ab68b6 in my_write_core (sig=6) at /sda/src/rds-mysql/mysys/stacktrace.c:424 #2 0x000000000073403c in handle_fatal_signal (sig=6) at /sda/src/rds-mysql/sql/signal_handler.cc:230 #3 <signal handler called> #4 0x00007f99a359c5f7 in raise () from /lib64/libc.so.6 #5 0x00007f99a359dce8 in abort () from /lib64/libc.so.6 #6 0x0000000000bb68f7 in ha_innobase::commit_inplace_alter_table (this=0x7f996c126630, altered_table=0x7f996c25f8d0, ha_alter_info=0x7f998f6f8b20, commit=true) at /sda/src/rds-mysql/storage/innobase/handler/handler0alter.cc:5826 #7 0x000000000064bb79 in handler::ha_commit_inplace_alter_table (this=0x7f996c126630, altered_table=0x7f996c25f8d0, ha_alter_info=0x7f998f6f8b20, commit=true) at /sda/src/rds-mysql/sql/handler.cc:4390 #8 0x0000000000852d8d in mysql_inplace_alter_table (thd=0x35459a0, table_list=0x7f996c005210, table=0x7f996c17ac00, altered_table=0x7f996c25f8d0, ha_alter_info=0x7f998f6f8b20, inplace_supported=HA_ALTER_INPLACE_NO_LOCK_AFTER_PREPARE, target_mdl_request=0x7f998f6f8570, alter_ctx=0x7f998f6f9080) at /sda/src/rds-mysql/sql/sql_table.cc:6727 #9 0x0000000000857053 in mysql_alter_table (thd=0x35459a0, new_db=0x7f996c005770 "test", new_name=0x0, create_info=0x7f998f6f9f10, table_list=0x7f996c005210, alter_info=0x7f998f6f9e80, order_num=0, order=0x0, ignore=false) at /sda/src/rds-mysql/sql/sql_table.cc:8554 #10 0x0000000000997e53 in Sql_cmd_alter_table::execute (this=0x7f996c005908, thd=0x35459a0) at /sda/src/rds-mysql/sql/sql_alter.cc:313 #11 0x00000000007e9728 in mysql_execute_command (thd=0x35459a0) at /sda/src/rds-mysql/sql/sql_parse.cc:5077 #12 0x00000000007ecb68 in mysql_parse (thd=0x35459a0, rawbuf=0x7f996c0050e0 "ALTER TABLE child CHANGE a2 a2_new INT, CHANGE a1 a1_new INT", length=60, parser_state=0x7f998f6fb6d0) at /sda/src/rds-mysql/sql/sql_parse.cc:6489 #13 0x00000000007df8e2 in dispatch_command (command=COM_QUERY, thd=0x35459a0, packet=0x3e503a1 "ALTER TABLE child CHANGE a2 a2_new INT, CHANGE a1 a1_new INT;", packet_length=61) at /sda/src/rds-mysql/sql/sql_parse.cc:1377 #14 0x00000000007de914 in do_command (thd=0x35459a0) at /sda/src/rds-mysql/sql/sql_parse.cc:1040 #15 0x00000000007a5ee1 in do_handle_one_connection (thd_arg=0x35459a0) at /sda/src/rds-mysql/sql/sql_connect.cc:982 #16 0x00000000007a5c7e in handle_one_connection (arg=0x35459a0) at /sda/src/rds-mysql/sql/sql_connect.cc:899 #17 0x0000000000b64db5 in pfs_spawn_thread (arg=0x3bf5d50) at /sda/src/rds-mysql/storage/perfschema/pfs.cc:1860 #18 0x00007f99a458bdc5 in start_thread () from /lib64/libpthread.so.0 #19 0x00007f99a365d21d in clone () from /lib64/libc.so.6 How to repeat: CREATE TABLE t1(a1 INT NOT NULL,a2 INT,a3 INT)ENGINE=InnoDB; SET @@SESSION.foreign_key_checks=OFF; ALTER TABLE t1 ADD CONSTRAINT fk_4 FOREIGN KEY(a1,a2)REFERENCES parent(a,b) ON DELETE CASCADE ON UPDATE CASCADE,ALGORITHM=INPLACE; ALTER TABLE t1 CHANGE a2 a2_new INT,CHANGE a1 a1_new INT;