connect stop_purge, localhost, root,,; START TRANSACTION WITH CONSISTENT SNAPSHOT; connect delete, localhost, root,,; connection default; CREATE TABLE t1(a INT PRIMARY KEY, b INT UNIQUE) ENGINE=InnoDB; INSERT INTO t1 VALUES(1,1); DELETE FROM t1; SET DEBUG_SYNC='row_ins_sec_index_unique SIGNAL inserted WAIT_FOR locked'; BEGIN; INSERT INTO t1 VALUES(1,1); connection delete; SET DEBUG_SYNC='now WAIT_FOR inserted'; SET DEBUG_SYNC='innodb_row_search_for_mysql_exit SIGNAL locked'; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; BEGIN; DELETE FROM t1 WHERE b=1; connection default; connection delete; COMMIT; connection default; SET DEBUG_SYNC='RESET'; ROLLBACK; SET DEBUG_SYNC='row_ins_sec_index_unique SIGNAL inserted WAIT_FOR locked'; BEGIN; INSERT INTO t1 VALUES(1,1); connection delete; SET DEBUG_SYNC='now WAIT_FOR inserted'; SET DEBUG_SYNC='innodb_row_search_for_mysql_exit SIGNAL locked'; SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; BEGIN; DELETE FROM t1 WHERE b=1; connection default; connection delete; COMMIT; connection default; SET DEBUG_SYNC='RESET'; ROLLBACK; SET DEBUG_SYNC='row_ins_sec_index_unique SIGNAL inserted WAIT_FOR locked'; BEGIN; SET innodb_lock_wait_timeout=1; INSERT INTO t1 VALUES(1,1); connection delete; SET DEBUG_SYNC='now WAIT_FOR inserted'; SET DEBUG_SYNC='innodb_row_search_for_mysql_exit SIGNAL locked'; SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; BEGIN; DELETE FROM t1 WHERE b=1; connection default; ERROR HY000: Lock wait timeout exceeded; try restarting transaction COMMIT; SET DEBUG_SYNC='RESET'; connection delete; COMMIT; disconnect delete; disconnect stop_purge; connection default; DROP TABLE t1;