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

InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)

Details

    Description

      10.4 commit c64265f3f909427dd87413d398e516b194fcb0db 2018-12-12
      compiled from source with ASAN.
      InnoDB: Assertion failure in file storage/innobase/dict/dict0mem.cc line 145
      InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)
       
      The problem affects  10.2.19 and 10.3.11 too
      but not 10.1 which reacts with 1005: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
       
      The assert was  found during RQG testing with the test "oltp1".
       
      problem.test
      --------------------
      --source include/have_innodb.inc
       
      # The setting "/*!100110 page_compressed=1 */" happens through the RQG grammar
      # and is required for getting the assert.
      CREATE TABLE t1 ( col1 INT , PRIMARY KEY (col1)) ENGINE=innodb /*!100110 page_compressed=1 */ ;
       
      # Try to enforce that MTR becomes aware of the dead server.
      SHOW PROCESSLIST;
       
      ./mysql-test-run.pl --mysqld=--innodb_default_row_format=redundant --mem problem
      
      

      Attachments

        Issue Links

          Activity

            Outcome on 10.2
             
            Version: '10.2.19-MariaDB-debug-log'  socket: ...
            2018-12-12 21:18:08 0x7f548e337700  InnoDB: Assertion failure in file storage/innobase/dict/dict0mem.cc line 118
            InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)
            InnoDB: We intentionally generate a memory trap.
            ...
            181212 21:18:08 [ERROR] mysqld got signal 6 ;
            ...
             
            Server version: 10.2.19-MariaDB-debug-log
            key_buffer_size=1048576
            read_buffer_size=131072
            max_used_connections=1
            max_threads=153
            thread_count=7
            ...
            Thread pointer: 0x62a0000ba208
            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...
            stack_bottom = 0x7f548e336d30 thread_stack 0x49000
            /usr/lib/x86_64-linux-gnu/libasan.so.4(+0x558c0)[0x7f54a5a5d8c0]
            mysys/stacktrace.c:267(my_print_stacktrace)[0x55cf5cb90d6b]
            sql/signal_handler.cc:168(handle_fatal_signal)[0x55cf5b8c5e44]
            /lib/x86_64-linux-gnu/libpthread.so.0(+0x13150)[0x7f54a4d2f150]
            linux/raise.c:51(__GI_raise)[0x7f54a40800bb]
            stdlib/abort.c:92(__GI_abort)[0x7f54a4081f5d]
            ut/ut0dbg.cc:62(__static_initialization_and_destruction_0(int, int))[0x55cf5c31e316]
            dict/dict0mem.cc:119(dict_mem_table_create(char const*, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long))[0x55cf5c4ea390]
            handler/ha_innodb.cc:11038(create_table_info_t::create_table_def())[0x55cf5be8482d]
            handler/ha_innodb.cc:12545(create_table_info_t::create_table(bool))[0x55cf5be51098]
            handler/ha_innodb.cc:12872(ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*, bool, trx_t*))[0x55cf5be87ed1]
            handler/ha_innodb.cc:12917(ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*))[0x55cf5be5333c]
            sql/handler.cc:4360(handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*))[0x55cf5b8e60b3]
            sql/handler.cc:4732(ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*))[0x55cf5b8e8d32]
            sql/unireg.cc:428(rea_create_table(THD*, st_mysql_const_unsigned_lex_string*, char const*, char const*, char const*, HA_CREATE_INFO*, handler*, bool))[0x55cf5b5906a2]
            sql/sql_table.cc:4906(create_table_impl(THD*, char const*, char const*, char const*, char const*, char const*, DDL_options_st, HA_CREATE_INFO*, Alter_info*, int, bool*, st_key**, unsigned int*, st_mysql_const_unsigned_lex_string*))[0x55cf5b4af007]
            sql/sql_table.cc:5016(mysql_create_table_no_lock(THD*, char const*, char const*, Table_specification_st*, Alter_info*, bool*, int))[0x55cf5b4afcd2]
            sql/sql_table.cc:5081(mysql_create_table(THD*, TABLE_LIST*, Table_specification_st*, Alter_info*))[0x55cf5b4b0547]
            sql/sql_parse.cc:3988(mysql_execute_command(THD*))[0x55cf5b286a06]
            sql/sql_parse.cc:8011(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55cf5b2a4626]
            sql/sql_parse.cc:1826(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55cf5b279243]
            sql/sql_parse.cc:1377(do_command(THD*))[0x55cf5b275a08]
            sql/sql_connect.cc:1335(do_handle_one_connection(CONNECT*))[0x55cf5b608d98]
            sql/sql_connect.cc:1242(handle_one_connection)[0x55cf5b608693]
            perfschema/pfs.cc:1864(pfs_spawn_thread)[0x55cf5ca9b55c]
            nptl/pthread_create.c:465(start_thread)[0x7f54a4d237fc]
            x86_64/clone.S:97(clone)[0x7f54a415db5f]
            *no* further _formatting_ is done here
            

            mleich Matthias Leich added a comment - Outcome on 10.2   Version: '10.2.19-MariaDB-debug-log' socket: ... 2018-12-12 21:18:08 0x7f548e337700 InnoDB: Assertion failure in file storage/innobase/dict/dict0mem.cc line 118 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2) InnoDB: We intentionally generate a memory trap. ... 181212 21:18:08 [ERROR] mysqld got signal 6 ; ...   Server version: 10.2.19-MariaDB-debug-log key_buffer_size=1048576 read_buffer_size=131072 max_used_connections=1 max_threads=153 thread_count=7 ... Thread pointer: 0x62a0000ba208 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... stack_bottom = 0x7f548e336d30 thread_stack 0x49000 /usr/lib/x86_64-linux-gnu/libasan.so.4(+0x558c0)[0x7f54a5a5d8c0] mysys/stacktrace.c:267(my_print_stacktrace)[0x55cf5cb90d6b] sql/signal_handler.cc:168(handle_fatal_signal)[0x55cf5b8c5e44] /lib/x86_64-linux-gnu/libpthread.so.0(+0x13150)[0x7f54a4d2f150] linux/raise.c:51(__GI_raise)[0x7f54a40800bb] stdlib/abort.c:92(__GI_abort)[0x7f54a4081f5d] ut/ut0dbg.cc:62(__static_initialization_and_destruction_0(int, int))[0x55cf5c31e316] dict/dict0mem.cc:119(dict_mem_table_create(char const*, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long))[0x55cf5c4ea390] handler/ha_innodb.cc:11038(create_table_info_t::create_table_def())[0x55cf5be8482d] handler/ha_innodb.cc:12545(create_table_info_t::create_table(bool))[0x55cf5be51098] handler/ha_innodb.cc:12872(ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*, bool, trx_t*))[0x55cf5be87ed1] handler/ha_innodb.cc:12917(ha_innobase::create(char const*, TABLE*, HA_CREATE_INFO*))[0x55cf5be5333c] sql/handler.cc:4360(handler::ha_create(char const*, TABLE*, HA_CREATE_INFO*))[0x55cf5b8e60b3] sql/handler.cc:4732(ha_create_table(THD*, char const*, char const*, char const*, HA_CREATE_INFO*, st_mysql_const_unsigned_lex_string*))[0x55cf5b8e8d32] sql/unireg.cc:428(rea_create_table(THD*, st_mysql_const_unsigned_lex_string*, char const*, char const*, char const*, HA_CREATE_INFO*, handler*, bool))[0x55cf5b5906a2] sql/sql_table.cc:4906(create_table_impl(THD*, char const*, char const*, char const*, char const*, char const*, DDL_options_st, HA_CREATE_INFO*, Alter_info*, int, bool*, st_key**, unsigned int*, st_mysql_const_unsigned_lex_string*))[0x55cf5b4af007] sql/sql_table.cc:5016(mysql_create_table_no_lock(THD*, char const*, char const*, Table_specification_st*, Alter_info*, bool*, int))[0x55cf5b4afcd2] sql/sql_table.cc:5081(mysql_create_table(THD*, TABLE_LIST*, Table_specification_st*, Alter_info*))[0x55cf5b4b0547] sql/sql_parse.cc:3988(mysql_execute_command(THD*))[0x55cf5b286a06] sql/sql_parse.cc:8011(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55cf5b2a4626] sql/sql_parse.cc:1826(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55cf5b279243] sql/sql_parse.cc:1377(do_command(THD*))[0x55cf5b275a08] sql/sql_connect.cc:1335(do_handle_one_connection(CONNECT*))[0x55cf5b608d98] sql/sql_connect.cc:1242(handle_one_connection)[0x55cf5b608693] perfschema/pfs.cc:1864(pfs_spawn_thread)[0x55cf5ca9b55c] nptl/pthread_create.c:465(start_thread)[0x7f54a4d237fc] x86_64/clone.S:97(clone)[0x7f54a415db5f] *no* further _formatting_ is done here

            While fixing this, I also made the new backup-safe TRUNCATE (MDEV-13564) preserve the current ROW_FORMAT of the table.

            marko Marko Mäkelä added a comment - While fixing this, I also made the new backup-safe TRUNCATE ( MDEV-13564 ) preserve the current ROW_FORMAT  of the table.

            People

              marko Marko Mäkelä
              mleich Matthias Leich
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.