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

Assertion err != DB_DUPLICATE_KEY failure upon concurrent ALTER

    XMLWordPrintable

Details

    Description

      Notes:
      The test case is extremely non-deterministic, run with a big value of --repeat=N. I usually get a failure within a few hundred repetitions, but better to increase it even further, to thousands, luckily the test is fast.
      Do not put it into the regression suite!
      The failure is rr-able, but it will probably require even more repetitions than without rr.

      --source include/have_innodb.inc
       
      CREATE TABLE t1 (a CHAR(1)) ENGINE=InnoDB;
      CREATE TABLE t2 (b CHAR(1)) ENGINE=InnoDB;
       
      --connect (con1,localhost,root,,)
       
      --send
        ALTER TABLE t2 ENGINE=InnoDB;
       
      --connection default
      ALTER TABLE t1 NOWAIT ENGINE = Aria;
      ALTER TABLE t1 NOWAIT ENGINE = InnoDB;
       
      --connection con1
      --reap
       
      # Cleanup
      DROP TABLE t1, t2;
      --disconnect con1
      

      10.6 8171f9da

      mariadbd: /data/src/10.6/storage/innobase/row/row0mysql.cc:2698: dberr_t row_rename_table_for_mysql(const char*, const char*, trx_t*, bool): Assertion `err != DB_DUPLICATE_KEY' failed.
      230617  0:50:44 [ERROR] mysqld got signal 6 ;
       
      #9  0x00007fc8d1e53df2 in __GI___assert_fail (assertion=0x5621241e8820 "err != DB_DUPLICATE_KEY", file=0x5621241e4de0 "/data/src/10.6/storage/innobase/row/row0mysql.cc", line=2698, function=0x5621241e85a0 "dberr_t row_rename_table_for_mysql(const char*, const char*, trx_t*, bool)") at ./assert/assert.c:101
      #10 0x0000562122cafed7 in row_rename_table_for_mysql (old_name=0x7fc8c4899a70 "test/#sql-alter-491f8-676", new_name=0x7fc8c4899830 "test/t1", trx=0x7fc8ca859940, use_fk=true) at /data/src/10.6/storage/innobase/row/row0mysql.cc:2698
      #11 0x0000562122916906 in innobase_rename_table (trx=0x7fc8ca859940, from=0x7fc8c489a8c0 "./test/#sql-alter-491f8-676", to=0x7fc8c489ab00 "./test/t1", use_fk=true) at /data/src/10.6/storage/innobase/handler/ha_innodb.cc:13809
      #12 0x000056212291a8b3 in ha_innobase::rename_table (this=0x62b0000c60d8, from=0x7fc8c489a8c0 "./test/#sql-alter-491f8-676", to=0x7fc8c489ab00 "./test/t1") at /data/src/10.6/storage/innobase/handler/ha_innodb.cc:14230
      #13 0x0000562121ed3144 in handler::ha_rename_table (this=0x62b0000c60d8, from=0x7fc8c489a8c0 "./test/#sql-alter-491f8-676", to=0x7fc8c489ab00 "./test/t1") at /data/src/10.6/sql/handler.cc:5379
      #14 0x00005621218cf6b5 in mysql_rename_table (base=0x615000002618, old_db=0x7fc8c489d390, old_name=0x7fc8c489d3c0, new_db=0x7fc8c489d390, new_name=0x7fc8c489d3b0, id=0x7fc8c489d3e0, flags=1) at /data/src/10.6/sql/sql_table.cc:5007
      #15 0x00005621218f89a2 in mysql_alter_table (thd=0x62b0000bd218, new_db=0x62b0000c1e48, new_name=0x62b0000c22a0, create_info=0x7fc8c489e2e0, table_list=0x62b0000c4518, recreate_info=0x7fc8c489e110, alter_info=0x7fc8c489e1b0, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/src/10.6/sql/sql_table.cc:10710
      #16 0x0000562121ab6fff in Sql_cmd_alter_table::execute (this=0x62b0000c4c48, thd=0x62b0000bd218) at /data/src/10.6/sql/sql_alter.cc:553
      #17 0x000056212164cae8 in mysql_execute_command (thd=0x62b0000bd218, is_called_from_prepared_stmt=false) at /data/src/10.6/sql/sql_parse.cc:6014
      #18 0x0000562121659ec5 in mysql_parse (thd=0x62b0000bd218, rawbuf=0x62b0000c4238 "ALTER TABLE t1 NOWAIT ENGINE = InnoDB", length=37, parser_state=0x7fc8c489fa30) at /data/src/10.6/sql/sql_parse.cc:8036
      #19 0x000056212162fd0c in dispatch_command (command=COM_QUERY, thd=0x62b0000bd218, packet=0x629000eba219 "", packet_length=37, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1896
      #20 0x000056212162ca40 in do_command (thd=0x62b0000bd218, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1409
      #21 0x0000562121a99afe in do_handle_one_connection (connect=0x608000039db8, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1416
      #22 0x0000562121a994bf in handle_one_connection (arg=0x6080000038b8) at /data/src/10.6/sql/sql_connect.cc:1318
      #23 0x00005621226f6866 in pfs_spawn_thread (arg=0x617000008218) at /data/src/10.6/storage/perfschema/pfs.cc:2201
      #24 0x00007fc8d1ea7fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #25 0x00007fc8d1f285bc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Reproducible on 10.6+.
      Could not reproduce on 10.5.

      Attachments

        1. op28.test
          22 kB
          Elena Stepanova

        Issue Links

          Activity

            People

              vlad.lesin Vladislav Lesin
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

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