[MDEV-7404] REPAIR multiple tables crash in MDL_ticket::has_stronger_or_equal_type Created: 2015-01-02  Updated: 2015-01-15  Resolved: 2015-01-15

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Alter Table
Affects Version/s: 10.0.15, 5.5, 10.0
Fix Version/s: 5.5.42, 10.0.16

Type: Bug Priority: Major
Reporter: sbester1 Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None


 Description   

Release build crash:

Version: '10.0.15-MariaDB'  socket: ''  port: 3306  MariaDB Server
150102 17:56:41 [ERROR] mysqld got exception 0xc0000005 ;
 
mysqld.exe!MDL_ticket::has_stronger_or_equal_type()[mdl.cc:1965]
mysqld.exe!MDL_context::upgrade_shared_lock()[mdl.cc:2556]
mysqld.exe!wait_while_table_is_used()[sql_base.cc:1781]
mysqld.exe!mysql_admin_table()[sql_admin.cc:604]
mysqld.exe!Sql_cmd_repair_table::execute()[sql_admin.cc:1237]
mysqld.exe!mysql_execute_command()[sql_parse.cc:5078]
mysqld.exe!mysql_parse()[sql_parse.cc:6407]
mysqld.exe!dispatch_command()[sql_parse.cc:1299]
mysqld.exe!do_command()[sql_parse.cc:996]
mysqld.exe!threadpool_process_request()[threadpool_common.cc:233]
mysqld.exe!io_completion_callback()[threadpool_win.cc:568]

Debug build assertion:

Version: '10.0.15-MariaDB-debug'  socket: ''  port: 3306  MariaDB Server
Assertion failed: !table_list->next_global, file ..\..\sql\sql_table.cc, line 9542
 
mysqld.exe!my_sigabrt_handler()[my_thr_init.c:475]
mysqld.exe!raise()[winsig.c:587]
mysqld.exe!abort()[abort.c:75]
mysqld.exe!_wassert()[assert.c:156]
mysqld.exe!mysql_recreate_table()[sql_table.cc:9542]
mysqld.exe!admin_recreate_table()[sql_admin.cc:58]
mysqld.exe!mysql_admin_table()[sql_admin.cc:760]
mysqld.exe!Sql_cmd_repair_table::execute()[sql_admin.cc:1237]
mysqld.exe!mysql_execute_command()[sql_parse.cc:5078]
mysqld.exe!mysql_parse()[sql_parse.cc:6407]
mysqld.exe!dispatch_command()[sql_parse.cc:1299]
mysqld.exe!do_command()[sql_parse.cc:996]
mysqld.exe!threadpool_process_request()[threadpool_common.cc:233]
mysqld.exe!io_completion_callback()[threadpool_win.cc:568]

How to Repeat
--------------------

drop table if exists `t1`,`t2`,`t3`;
create table `t1`(`a` int) engine=innodb partition by key (`a`);
create table `t2`(`b` int) engine=innodb;
create table `t3`(`c` int) engine=innodb;
repair table `t1`,`t2`,`t3`;



 Comments   
Comment by Elena Stepanova [ 2015-01-02 ]

Thanks for the report and the test case.

5.5 revno 4398 debug build

mysqld: 5.5/sql/sql_table.cc:7663: bool mysql_recreate_table(THD*, TABLE_LIST*): Assertion `!table_list->next_global' failed.
150103  1:02:19 [ERROR] mysqld got signal 6 ;
 
#6  0x00007fa4dbdeb6f1 in *__GI___assert_fail (assertion=0xd752a0 "!table_list->next_global", file=<optimized out>, line=7663, function=0xd75ac0 "bool mysql_recreate_table(THD*, TABLE_LIST*)") at assert.c:81
#7  0x00000000006d8747 in mysql_recreate_table (thd=0x7fa4d6e26060, table_list=0x7fa4cbd51780) at 5.5/sql/sql_table.cc:7663
#8  0x000000000074073b in admin_recreate_table (thd=0x7fa4d6e26060, table_list=0x7fa4cbd51780) at 5.5/sql/sql_admin.cc:45
#9  0x00000000007421cd in mysql_admin_table(THD *, TABLE_LIST *, HA_CHECK_OPT *, const char *, thr_lock_type, bool, bool, uint, int (*)(THD *, TABLE_LIST *, HA_CHECK_OPT *), struct {...}, int (*)(THD *, TABLE_LIST *)) (thd=0x7fa4d6e26060, tables=0x7fa4cbd51168, check_opt=0x7fa4d6e2a170, operator_name=0xd97d85 "repair", lock_type=TL_WRITE, open_for_modify=false, repair_table_use_frm=false, extra_open_options=32, prepare_func=0x74089a <prepare_for_repair(THD*, TABLE_LIST*, HA_CHECK_OPT*)>, operator_func=(int (handler::*)(handler * const, THD *, HA_CHECK_OPT *)) 0x7ef08e <handler::ha_repair(THD*, st_ha_check_opt*)>, view_operator_func=0) at 5.5/sql/sql_admin.cc:661
#10 0x0000000000743afc in Repair_table_statement::execute (this=0x7fa4cbd52370, thd=0x7fa4d6e26060) at 5.5/sql/sql_admin.cc:1129
#11 0x000000000063b7ce in mysql_execute_command (thd=0x7fa4d6e26060) at 5.5/sql/sql_parse.cc:4514
#12 0x000000000063eb52 in mysql_parse (thd=0x7fa4d6e26060, rawbuf=0x7fa4cbd51078 "repair table `t1`,`t2`,`t3`", length=27, parser_state=0x7fa4ddfab620) at 5.5/sql/sql_parse.cc:5909
#13 0x0000000000632795 in dispatch_command (command=COM_QUERY, thd=0x7fa4d6e26060, packet=0x7fa4cdcb5061 "", packet_length=27) at 5.5/sql/sql_parse.cc:1079
#14 0x0000000000631921 in do_command (thd=0x7fa4d6e26060) at 5.5/sql/sql_parse.cc:793
#15 0x0000000000733eee in do_handle_one_connection (thd_arg=0x7fa4d6e26060) at 5.5/sql/sql_connect.cc:1266
#16 0x00000000007339ad in handle_one_connection (arg=0x7fa4d6e26060) at 5.5/sql/sql_connect.cc:1181
#17 0x0000000000b6bf51 in pfs_spawn_thread (arg=0x7fa4d6e58700) at 5.5/storage/perfschema/pfs.cc:1015
#18 0x00007fa4ddbe5b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#19 0x00007fa4dbe9c20d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

Generated at Thu Feb 08 07:19:20 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.