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

Crash in dict_index_set_merge_threshold() on CREATE TABLE

Details

    Description

      Crash happens on

      CREATE TABLE SOME_TEMP_4994 (
        ID NUMERIC(38), 
        IDSTR VARCHAR(1000),
        NAME NVARCHAR(1000), 
        DATEHOUR DATETIME, 
        VALUE NUMERIC(38,5), 
        VALUE2 NUMERIC(38,5), 
        VALUE3 NUMERIC(38,5));
      

      The gdb backtrace looks very similar to the one in upstream bug https://bugs.mysql.com/89126 which also has an analysis of a potential race condition and a proposed patch:

      Thread 1 (Thread 0x7faf004ca700 (LWP 10407)):
      #0  0x00007faf48ed69b1 in pthread_kill () from /lib64/libpthread.so.0
      #1  0x000056364835a8da in handle_fatal_signal (sig=11) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/signal_handler.cc:305
      #2  <signal handler called>
      #3  0x000056364871207a in dict_index_set_merge_threshold (index=index@entry=0x7faf141e9ec0, merge_threshold=merge_threshold@entry=50) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/storage/innobase/dict/dict0dict.cc:6186
      #4  0x0000563648530eb5 in innobase_parse_hint_from_comment (thd=<optimized out>, table=table@entry=0x7faf141eeec0, table_share=0x7faf004c5e50) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/storage/innobase/handler/ha_innodb.cc:12853
      #5  0x000056364853138d in create_table_info_t::create_table_update_dict (this=this@entry=0x7faf004c4b40) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/storage/innobase/handler/ha_innodb.cc:13341
      #6  0x0000563648547b47 in ha_innobase::create (this=<optimized out>, name=0x7faf004c77c0 "./some_db/SOME_TEMP_5571", form=<optimized out>, create_info=<optimized out>) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/storage/innobase/handler/ha_innodb.cc:13411
      #7  0x0000563648362568 in handler::ha_create (this=0x7faf14229a30, name=<optimized out>, form=form@entry=0x7faf004c50e0, info_arg=info_arg@entry=0x7faf004c7c40) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/handler.cc:4369
      #8  0x0000563648362e3a in ha_create_table (thd=thd@entry=0x7faf1426f048, path=path@entry=0x7faf004c77c0 "./some_db/SOME_TEMP_5571", db=db@entry=0x7faf14365b90 "some_db", table_name=table_name@entry=0x7faf14365528 "SOME_TEMP_5571", create_info=create_info@entry=0x7faf004c7c40, frm=frm@entry=0x7faf004c77b0) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/handler.cc:4740
      #9  0x000056364827f6ec in rea_create_table (thd=thd@entry=0x7faf1426f048, frm=frm@entry=0x7faf004c77b0, path=path@entry=0x7faf004c77c0 "./some_db/SOME_TEMP_5571", db=db@entry=0x7faf14365b90 "some_db", table_name=table_name@entry=0x7faf14365528 "SOME_TEMP_5571", create_info=create_info@entry=0x7faf004c7c40, file=file@entry=0x7faf14366a38, no_ha_create_table=no_ha_create_table@entry=false) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/unireg.cc:419
      #10 0x000056364824e9dd in create_table_impl (thd=thd@entry=0x7faf1426f048, orig_db=orig_db@entry=0x7faf14365b90 "some_db", orig_table_name=orig_table_name@entry=0x7faf14365528 "SOME_TEMP_5571", db=db@entry=0x7faf14365b90 "some_db", table_name=table_name@entry=0x7faf14365528 "SOME_TEMP_5571", path=path@entry=0x7faf004c77c0 "./some_db/SOME_TEMP_5571", options=..., create_info=create_info@entry=0x7faf004c7c40, alter_info=alter_info@entry=0x7faf004c7b90, create_table_mode=create_table_mode@entry=0, is_trans=is_trans@entry=0x7faf004c7a40, key_info=key_info@entry=0x7faf004c77a0, key_count=key_count@entry=0x7faf004c7790, frm=frm@entry=0x7faf004c77b0) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_table.cc:4899
      #11 0x000056364824f000 in mysql_create_table_no_lock (thd=thd@entry=0x7faf1426f048, db=db@entry=0x7faf14365b90 "some_db", table_name=table_name@entry=0x7faf14365528 "SOME_TEMP_5571", create_info=create_info@entry=0x7faf004c7c40, alter_info=alter_info@entry=0x7faf004c7b90, is_trans=is_trans@entry=0x7faf004c7a40, create_table_mode=0) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_table.cc:5010
      #12 0x000056364824f1a0 in mysql_create_table (thd=thd@entry=0x7faf1426f048, create_table=create_table@entry=0x7faf14365580, create_info=create_info@entry=0x7faf004c7c40, alter_info=alter_info@entry=0x7faf004c7b90) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_table.cc:5073
      #13 0x00005636481d0e21 in mysql_execute_command (thd=thd@entry=0x7faf1426f048) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_parse.cc:3968
      #14 0x00005636481d1a5e in mysql_parse (thd=0x7faf1426f048, rawbuf=<optimized out>, length=<optimized out>, parser_state=0x7faf004c9140, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_parse.cc:7900
      #15 0x00005636481d4a6f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7faf1426f048, packet=packet@entry=0x7faf144d1b59 "create table SOME_TEMP_5571 (ID NUMERIC(38), IDSTR VARCHAR(1000), NAME NVARCHAR(1000), DATEHOUR DATETIME, VALUE NUMERIC(38,5), VALUE2 NUMERIC(38,5), VALUE3 NUMERIC(38,5))", packet_length=packet_length@entry=174, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_parse.cc:1805
      #16 0x00005636481d5669 in do_command (thd=0x7faf1426f048) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_parse.cc:1360
      #17 0x0000563648298efa in do_handle_one_connection (connect=connect@entry=0x56364aca20f8) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_connect.cc:1335
      #18 0x000056364829901d in handle_one_connection (arg=0x56364aca20f8) at /home/buildbot/buildbot/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/mariadb-10.2.12/sql/sql_connect.cc:1241
      #19 0x00007faf48ed1e25 in start_thread () from /lib64/libpthread.so.0
      #20 0x00007faf474a934d in clone () from /lib64/libc.so.6
      

      Attachments

        Activity

          The bug and the fix are obvious, but it is hard to reproduce the bug, because it would require the InnoDB LRU eviction to kick in at the right moment.
          I simply applied the contributed patch from upstream. This bug was introduced in MySQL 5.7, which was first merged to MariaDB in version 10.2.2.

          marko Marko Mäkelä added a comment - The bug and the fix are obvious, but it is hard to reproduce the bug, because it would require the InnoDB LRU eviction to kick in at the right moment. I simply applied the contributed patch from upstream. This bug was introduced in MySQL 5.7, which was first merged to MariaDB in version 10.2.2.

          People

            marko Marko Mäkelä
            hholzgra Hartmut Holzgraefe
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.