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

Assertion `not_redundant() == old.not_redundant()' failed in dict_table_t::prepare_instant

    XMLWordPrintable

    Details

      Description

      --source include/have_innodb.inc
       
      SET @row_format.save= @@innodb_default_row_format;
       
      CREATE TABLE t1 (pk INT PRIMARY KEY, a INT, KEY(a)) ENGINE=InnoDB;
      SET GLOBAL innodb_default_row_format= REDUNDANT;
      ALTER TABLE t1 DROP a;
       
      # Cleanup
      DROP TABLE t1;
      SET GLOBAL innodb_default_row_format= @row_format.save;
      

      10.4 6d3186e3

      mysqld: /data/src/10.4/storage/innobase/handler/handler0alter.cc:241: void dict_table_t::prepare_instant(const dict_table_t&, const ulint*, unsigned int&): Assertion `not_redundant() == old.not_redundant()' failed.
      200730 20:00:35 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007f613a183f12 in __GI___assert_fail (assertion=0x559aafe5aa48 "not_redundant() == old.not_redundant()", file=0x559aafe5a748 "/data/src/10.4/storage/innobase/handler/handler0alter.cc", line=241, function=0x559aafe643c0 <dict_table_t::prepare_instant(dict_table_t const&, unsigned long const*, unsigned int&)::__PRETTY_FUNCTION__> "void dict_table_t::prepare_instant(const dict_table_t&, const ulint*, unsigned int&)") at assert.c:101
      #8  0x0000559aaf53e0b9 in dict_table_t::prepare_instant (this=0x7f60e8057a80, old=..., col_map=0x7f60e8057538, first_alter_pos=@0x7f60e80148b0: 0) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:241
      #9  0x0000559aaf5451e2 in ha_innobase_inplace_ctx::prepare_instant (this=0x7f60e8014748) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:1079
      #10 0x0000559aaf528d04 in prepare_inplace_alter_table_dict (ha_alter_info=0x7f6134129d50, altered_table=0x7f6134129df0, old_table=0x7f60e819ee80, table_name=0x7f60e81a17f5 "t1", flags=0, flags2=80, fts_doc_id_col=18446744073709551615, add_fts_doc_id=false, add_fts_doc_id_idx=false) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:6779
      #11 0x0000559aaf52f165 in ha_innobase::prepare_inplace_alter_table (this=0x7f60e819fce8, altered_table=0x7f6134129df0, ha_alter_info=0x7f6134129d50) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:8258
      #12 0x0000559aaf2a0612 in handler::ha_prepare_inplace_alter_table (this=0x7f60e819fce8, altered_table=0x7f6134129df0, ha_alter_info=0x7f6134129d50) at /data/src/10.4/sql/handler.cc:4596
      #13 0x0000559aaf02795a in mysql_inplace_alter_table (thd=0x7f60e8000af0, table_list=0x7f60e8013270, table=0x7f60e819ee80, altered_table=0x7f6134129df0, ha_alter_info=0x7f6134129d50, target_mdl_request=0x7f613412abc0, alter_ctx=0x7f613412b700) at /data/src/10.4/sql/sql_table.cc:7711
      #14 0x0000559aaf02ea86 in mysql_alter_table (thd=0x7f60e8000af0, new_db=0x7f60e80052b0, new_name=0x7f60e80056b8, create_info=0x7f613412c2f0, table_list=0x7f60e8013270, alter_info=0x7f613412c230, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:10156
      #15 0x0000559aaf0c6db1 in Sql_cmd_alter_table::execute (this=0x7f60e8013960, thd=0x7f60e8000af0) at /data/src/10.4/sql/sql_alter.cc:520
      #16 0x0000559aaef443a2 in mysql_execute_command (thd=0x7f60e8000af0) at /data/src/10.4/sql/sql_parse.cc:6098
      #17 0x0000559aaef49893 in mysql_parse (thd=0x7f60e8000af0, rawbuf=0x7f60e8013198 "ALTER TABLE t1 DROP a", length=21, parser_state=0x7f613412d570, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7896
      #18 0x0000559aaef35dc8 in dispatch_command (command=COM_QUERY, thd=0x7f60e8000af0, packet=0x7f60e80083a1 "ALTER TABLE t1 DROP a", packet_length=21, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1835
      #19 0x0000559aaef3456a in do_command (thd=0x7f60e8000af0) at /data/src/10.4/sql/sql_parse.cc:1353
      #20 0x0000559aaf0bd7c4 in do_handle_one_connection (connect=0x559ab1df68e0) at /data/src/10.4/sql/sql_connect.cc:1412
      #21 0x0000559aaf0bd513 in handle_one_connection (arg=0x559ab1df68e0) at /data/src/10.4/sql/sql_connect.cc:1316
      #22 0x0000559aafabea89 in pfs_spawn_thread (arg=0x559ab1d192a0) at /data/src/10.4/storage/perfschema/pfs.cc:1869
      #23 0x00007f613c10c4a4 in start_thread (arg=0x7f613412e700) at pthread_create.c:456
      #24 0x00007f613a240d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      No obvious problem on a non-debug build.
      10.5 is not yet affected.
      The failure started happening on 10.4 after this commit:

      commit fd9ca2a742abe2e91b2b77e70915dec7bd3cd7e1 4968fdbcef1c2d62ed525dffac153cf9f8eb1913
      Author:     Marko Mäkelä
      AuthorDate: Mon Jul 27 15:04:04 2020 +0300
       
          MDEV-23295 ROW_FORMAT mismatch in instant ALTER TABLE
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: