--source include/have_innodb.inc # Embedded server does not support restarting. --source include/not_embedded.inc --source include/no_valgrind_without_big.inc # MDEV-8841 - close tables opened by previous tests, # so they don't get marked crashed when the server gets crashed --disable_query_log call mtr.add_suppression("Found [12] prepared XA transactions"); FLUSH TABLES; --enable_query_log CREATE TABLE t1 (a INT) 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) ENGINE=InnoDB; XA START 'y'; INSERT INTO t2 VALUES (1); XA END 'y'; XA PREPARE 'y'; connection default; # innodb_force_recovery=2 prevents the purge and tests that the fix of # MDEV-13606 XA PREPARE transactions should survive innodb_force_recovery=1 or 2 # is present. --let $restart_parameters= --innodb-force-recovery=2 --let $shutdown_timeout=0 --source include/restart_mysqld.inc --let $restart_parameters= --let $shutdown_timeout= disconnect con1; disconnect con2; connect (con1,localhost,root); --send SELECT * FROM t1 LOCK IN SHARE MODE connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist where state = 'Sending data' and info = 'SELECT * FROM t1 LOCK IN SHARE MODE'; --source include/wait_condition.inc SET innodb_lock_wait_timeout=1; --error ER_LOCK_WAIT_TIMEOUT DROP TABLE t2; disconnect con1; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; --disable_ps2_protocol SELECT * FROM t1; --enable_ps2_protocol XA ROLLBACK 'x'; SELECT * FROM t1; DROP TABLE t1; --error ER_LOCK_WAIT_TIMEOUT DROP TABLE t2; XA ROLLBACK 'y'; DROP TABLE t2; SET GLOBAL innodb_fast_shutdown=0; --source include/restart_mysqld.inc