Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-7404

REPAIR multiple tables crash in MDL_ticket::has_stronger_or_equal_type

Details

    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`;

      Attachments

        Activity

          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

          elenst Elena Stepanova added a comment - 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

          People

            serg Sergei Golubchik
            sbester1 sbester1
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.