From 93e746afb2d1a23cb933291ad736a20858b5ac3e Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Tue, 17 Mar 2015 19:49:04 +0400 Subject: MDEV-7793 - Race condition between XA COMMIT/ROLLBACK and disconnect XA COMMIT/ROLLBACK of XA transaction owned by different thread may access freed memory if that thread disconnects at the same time. Also concurrent XA COMMIT/ROLLBACK of recovered XA transaction were not serialized properly. --- mysql-test/r/xa_sync.result | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 mysql-test/r/xa_sync.result (limited to 'mysql-test/r/xa_sync.result') diff --git a/mysql-test/r/xa_sync.result b/mysql-test/r/xa_sync.result new file mode 100644 index 00000000000..769a13d1773 --- /dev/null +++ b/mysql-test/r/xa_sync.result @@ -0,0 +1,24 @@ +# +# MDEV-7793 - Race condition between XA COMMIT/ROLLBACK and disconnect +# +# Note that this test is meaningful only with valgrind. +XA START 'xatest'; +XA END 'xatest'; +XA PREPARE 'xatest'; +SET debug_sync='xa_after_search SIGNAL parked WAIT_FOR go'; +XA COMMIT 'xatest'; +SET debug_sync='now WAIT_FOR parked'; +# Waiting for thread to get deleted +SET debug_sync='now SIGNAL go'; +ERROR XAE04: XAER_NOTA: Unknown XID +SET debug_sync='RESET'; +XA START 'xatest'; +XA END 'xatest'; +XA PREPARE 'xatest'; +SET debug_sync='xa_after_search SIGNAL parked WAIT_FOR go'; +XA ROLLBACK 'xatest'; +SET debug_sync='now WAIT_FOR parked'; +# Waiting for thread to get deleted +SET debug_sync='now SIGNAL go'; +ERROR XAE04: XAER_NOTA: Unknown XID +SET debug_sync='RESET'; -- cgit v1.2.1