CREATE TABLE t1 (c1 INT , c2 CHAR(10), PRIMARY KEY (c1)) ENGINE = InnoDB; INSERT INTO t1 VALUES(0, "0"); INSERT INTO t1 VALUES(1, "1"); INSERT INTO t1 VALUES(2, "2"); INSERT INTO t1 VALUES(3, "3"); connect con1,localhost,root,,; connect con2,localhost,root,,; connect con3,localhost,root,,; connect con4,localhost,root,,; connect con5,localhost,root,,; connect con6,localhost,root,,; connection default; SET AUTOCOMMIT=0; BEGIN; SELECT * FROM t1 FOR UPDATE; c1 c2 0 0 1 1 2 2 3 3 SELECT * FROM t1 WHERE c1 <= 3; c1 c2 0 0 1 1 2 2 3 3 connection default; SET DEBUG_SYNC='now WAIT_FOR waiting4'; SET DEBUG_SYNC= 'RESET'; SELECT trx_state, trx_query, trx_autocommit_non_locking FROM INFORMATION_SCHEMA.INNODB_TRX WHERE trx_state = 'LOCK WAIT' ORDER BY trx_query; trx_state trx_query trx_autocommit_non_locking LOCK WAIT SELECT COUNT(*) FROM t1 LOCK IN SHARE MODE 0 LOCK WAIT SELECT COUNT(*) FROM t1 WHERE c1 >= 0 0 INSERT INTO t1 VALUES(4, '4'); COMMIT; connection con6; SELECT * FROM t1 WHERE c1 <= 4; c1 c2 0 0 1 1 2 2 3 3 XA END '1'; XA PREPARE '1'; XA ROLLBACK '1'; disconnect con6; disconnect con2; disconnect con3; disconnect con5; connection con1; COUNT(*) 5 disconnect con1; connection con4; COUNT(*) 5 disconnect con4; connection default; DROP TABLE t1;