# # MDEV-35508: Race condition between purge and secondary index INSERT or UPDATE # SET @old_debug_dbug = @@global.debug_dbug; CREATE TABLE t1(col1 INT PRIMARY KEY, col2 int, KEY k1(col2)) ENGINE=Innodb; INSERT INTO t1 VALUES(1, 100); CREATE TABLE t2(col1 INT PRIMARY KEY) Engine=Innodb; InnoDB 0 transactions not purged START TRANSACTION; INSERT INTO t2 VALUES(10); SET DEBUG_SYNC='RESET'; SET GLOBAL debug_dbug= "+d,btr_force_pessimistic_delete"; SET GLOBAL debug_dbug= "+d,enable_row_purge_sec_tree_sync"; connect con1,localhost,root; UPDATE t1 SET col2 = 200 WHERE col1 = 1; connection default; SET DEBUG_SYNC= 'now WAIT_FOR purge_sec_tree_begin'; SET GLOBAL debug_dbug= "-d,enable_row_purge_sec_tree_sync"; UPDATE t1 SET col2 = 100 WHERE col1 = 1; SET DEBUG_SYNC= 'now SIGNAL purge_sec_tree_execute'; COMMIT; InnoDB 0 transactions not purged disconnect con1; SELECT * FROM t1; col1 col2 1 100 CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1; SELECT * FROM t2; col1 10 DROP TABLE t2; SET @@GLOBAL.debug_dbug = @old_debug_dbug; SET DEBUG_SYNC='RESET';