diff options
author | Kristian Nielsen <knielsen@knielsen-hq.org> | 2017-04-20 16:07:27 +0200 |
---|---|---|
committer | Kristian Nielsen <knielsen@knielsen-hq.org> | 2017-04-21 10:30:16 +0200 |
commit | da9decdccf102f639bae43c8cdc7594b6dcbcb41 (patch) | |
tree | 1acda78ea504c5bd8d240c3e1456921a40f9a1d1 /mysql-test/extra | |
parent | fdf2d407707faf05b8b7d67662a70cc5537d15aa (diff) | |
download | mariadb-git-da9decdccf102f639bae43c8cdc7594b6dcbcb41.tar.gz |
Use separate connection for START SLAVE in rpl_deadlock.test
START SLAVE is documented to implicitly commit any active transaction.
So do this in a separate connection, to not break the lock on which
the test case depends.
Found during MDEV-12179 development, but independent of this, so done
in a separate commit.
Diffstat (limited to 'mysql-test/extra')
-rw-r--r-- | mysql-test/extra/rpl_tests/rpl_deadlock.test | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mysql-test/extra/rpl_tests/rpl_deadlock.test b/mysql-test/extra/rpl_tests/rpl_deadlock.test index f7a1e71d5d9..e9191d5fcd8 100644 --- a/mysql-test/extra/rpl_tests/rpl_deadlock.test +++ b/mysql-test/extra/rpl_tests/rpl_deadlock.test @@ -46,6 +46,9 @@ BEGIN; SELECT * FROM t1 FOR UPDATE; # Save variable 'Slave_retried_transactions' before deadlock let $slave_retried_transactions= query_get_value(SHOW GLOBAL STATUS LIKE 'Slave_retried_transactions', Value, 1); +# Run the START SLAVE in a separate connection. Otherwise it terminates +# the SELECT FOR UPDATE transaction (START SLAVE does implicit COMMIT!). +connection slave1; START SLAVE; # Wait until SQL thread blocked: variable 'Slave_retried_transactions' will incremented let $status_var= Slave_retried_transactions; @@ -53,6 +56,7 @@ let $status_var_value= $slave_retried_transactions; let $status_type= GLOBAL; let $status_var_comparsion= >; --source include/wait_for_status_var.inc +connection slave; SELECT COUNT(*) FROM t2; COMMIT; sync_with_master; @@ -78,9 +82,11 @@ BEGIN; # Hold lock SELECT * FROM t1 FOR UPDATE; # Wait until slave stopped with error 'Lock wait timeout exceeded' +connection slave1; START SLAVE; let $slave_sql_errno= 1205; --source include/wait_for_slave_sql_error.inc +connection slave; SELECT COUNT(*) FROM t2; COMMIT; --source include/start_slave.inc @@ -109,9 +115,11 @@ BEGIN; # Hold lock SELECT * FROM t1 FOR UPDATE; # Wait until slave stopped with error 'Lock wait timeout exceeded' +connection slave1; START SLAVE; let $slave_sql_errno= 1205; --source include/wait_for_slave_sql_error.inc +connection slave; SELECT COUNT(*) FROM t2; COMMIT; --source include/start_slave.inc |