[MDEV-30992] Assertion err != DB_DUPLICATE_KEY failure upon concurrent ALTER Created: 2023-04-03  Updated: 2023-11-28

Status: Open
Project: MariaDB Server
Component/s: Data Definition - Alter Table, Storage Engine - InnoDB
Affects Version/s: 10.6, 10.9, 10.10, 10.11, 11.0, 11.1
Fix Version/s: 10.6, 10.11, 11.0, 11.1

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Vladislav Lesin
Resolution: Unresolved Votes: 0
Labels: None

Attachments: File op28.test    
Issue Links:
Relates
relates to MDEV-30583 DB_DUPLICATE_KEY on CREATE OR REPLACE... Stalled

 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.



 Comments   
Comment by Marko Mäkelä [ 2023-07-26 ]

Assigning to the assignee of MDEV-30583.

Generated at Thu Feb 08 10:20:27 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.