diff options
author | sachin <sachin.setiya@mariadb.com> | 2021-04-02 00:33:13 +0100 |
---|---|---|
committer | Sachin Kumar <sachin.setiya@mariadb.com> | 2021-04-22 10:37:33 +0100 |
commit | 21973d0d8ed18f62c6cc220a0ee8729e7d44d790 (patch) | |
tree | 03325eff05040b4a79367f614838b27e974b536c /mysql-test/main/flush_read_lock.test | |
parent | df33b719ca9271cd1a3c2930db399b9685ffd3ca (diff) | |
download | mariadb-git-21973d0d8ed18f62c6cc220a0ee8729e7d44d790.tar.gz |
MDEV-22953 main.flush_read_lock failed in buildbot with XAER_NOTA: Unknown XID
Issue:- Since there is no waiting for the actual disconnection of the con_tmp
(which does XA prepare of test1), We can have a issue when test1 is not
prepared and we are calling rollback on test1 , giving XAER_NOTA: Unknown XID
error
Solution:- Wait for the complete disconnection of con_tmp
Diffstat (limited to 'mysql-test/main/flush_read_lock.test')
-rw-r--r-- | mysql-test/main/flush_read_lock.test | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/mysql-test/main/flush_read_lock.test b/mysql-test/main/flush_read_lock.test index 205b8b302ea..d73820425d2 100644 --- a/mysql-test/main/flush_read_lock.test +++ b/mysql-test/main/flush_read_lock.test @@ -1690,25 +1690,34 @@ insert into t3_trans values (1); xa end 'test1'; xa prepare 'test1'; --echo # Disconnect temporary connection +set debug_sync='thread_end SIGNAL test1_prepare'; disconnect con_tmp; +connection $con_aux1; +set debug_sync='now WAIT_FOR test1_prepare'; + + --echo # Create temporary connection for XA transaction. -connect (con_tmp,localhost,root,,); +connect (con_tmp1,localhost,root,,); xa start 'test2'; insert into t3_trans values (2); xa end 'test2'; xa prepare 'test2'; --echo # Disconnect temporary connection -set debug_sync='thread_end SIGNAL detached'; -disconnect con_tmp; +set debug_sync='thread_end SIGNAL test2_prepare'; +disconnect con_tmp1; + + --echo # Switching to connection '$con_aux1'. connection $con_aux1; -set debug_sync='now WAIT_FOR detached'; +set debug_sync='now WAIT_FOR test2_prepare'; flush tables with read lock; + --echo # Switching to connection 'default'. connection default; --echo # Send XA ROLLBACK 'test1' --send xa rollback 'test1' --echo # Switching to connection '$con_aux1'. + connection $con_aux1; --echo # Wait until XA ROLLBACK is blocked. let $wait_condition= |