diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2015-03-17 19:49:04 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2015-03-17 19:49:04 +0400 |
commit | 93e746afb2d1a23cb933291ad736a20858b5ac3e (patch) | |
tree | 261ec67df4329e6a7e6a62dfdf9e70887709ba24 /mysql-test/r/xa_sync.result | |
parent | ccc7297fe94af1129c717f91d31fa075d54a0371 (diff) | |
download | mariadb-git-bb-mdev7793.tar.gz |
MDEV-7793 - Race condition between XA COMMIT/ROLLBACK and disconnectbb-mdev7793
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.
Diffstat (limited to 'mysql-test/r/xa_sync.result')
-rw-r--r-- | mysql-test/r/xa_sync.result | 24 |
1 files changed, 24 insertions, 0 deletions
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'; |