CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); connect con1,localhost,root; XA START 'x'; UPDATE t1 set a=2; XA END 'x'; XA PREPARE 'x'; connect con2,localhost,root; CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB; XA START 'y'; INSERT INTO t2 VALUES (1); XA END 'y'; XA PREPARE 'y'; connection default; # restart: --innodb-force-recovery=2 disconnect con1; disconnect con2; connect con1,localhost,root; SELECT * FROM t1 LOCK IN SHARE MODE; connection default; SET innodb_lock_wait_timeout=1; DROP TABLE t2; ERROR HY000: Lock wait timeout exceeded; try restarting transaction disconnect con1; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT * FROM t1; a 2 XA ROLLBACK 'x'; SELECT * FROM t1; a 1 DROP TABLE t2; ERROR HY000: Lock wait timeout exceeded; try restarting transaction XA ROLLBACK 'y'; DROP TABLE t2; CREATE TABLE t3(a INT PRIMARY KEY REFERENCES t1(a)) ENGINE=InnoDB; XA START 'a'; INSERT INTO t3 SET a=1; INSERT INTO t3 SET a=42; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t3`, CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`a`) REFERENCES `t1` (`a`)) XA END 'a'; XA PREPARE 'a'; SET GLOBAL innodb_fast_shutdown=0; # restart XA COMMIT 'a'; SELECT * FROM t3; a 1 DROP TABLE t3,t1;