diff options
Diffstat (limited to 'mysql-test/suite/storage_engine/trx/xa_recovery.test')
-rw-r--r-- | mysql-test/suite/storage_engine/trx/xa_recovery.test | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/mysql-test/suite/storage_engine/trx/xa_recovery.test b/mysql-test/suite/storage_engine/trx/xa_recovery.test new file mode 100644 index 00000000000..d7ac2e782d1 --- /dev/null +++ b/mysql-test/suite/storage_engine/trx/xa_recovery.test @@ -0,0 +1,71 @@ +# +# Server restart with uncommitted XA transactions +# + +--source ../have_engine.inc +--source support_xa.inc + +# Before we start, we want to restart the server gracefully, +# so GCOV information and everything else is properly stored + +--enable_reconnect +--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +restart +EOF +--shutdown_server 60 +--source include/wait_until_connected_again.inc + + +call mtr.add_suppression("Found 2 prepared XA transactions"); +if (!$support_xa) +{ + --disable_query_log + call mtr.add_suppression("Table '.*t1' is marked as crashed and should be repaired"); + call mtr.add_suppression("Checking table: '.*t1'"); + --enable_query_log +} + +--enable_connect_log + +# Close all unused tables to prevent unrelated corruption +FLUSH TABLES; + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--connect (con1,localhost,root,,) +--connect (con2,localhost,root,,) + +--connection con1 +--let $create_definition = a $int_col +--source ../create_table.inc + +XA START 'xa1'; +INSERT INTO t1 (a) VALUES (1),(2); +XA END 'xa1'; +XA PREPARE 'xa1'; + +--connection con2 +XA START 'xa2'; +INSERT INTO t1 (a) VALUES (3); +INSERT INTO t1 (a) VALUES (4); +XA END 'xa2'; +XA PREPARE 'xa2'; + +--connection default +--enable_reconnect +--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +restart +EOF +--shutdown_server 0 +--source include/wait_until_disconnected.inc +--source include/wait_until_connected_again.inc +XA RECOVER; +XA ROLLBACK 'xa1'; +XA COMMIT 'xa2'; +SELECT * FROM t1; +DROP TABLE t1; + +--source ../cleanup_engine.inc + |