--source include/galera_cluster.inc --source include/have_innodb.inc --source include/big_test.inc --connection node_2 call mtr.add_suppression("WSREP: Trying to continue unpaused monitor"); --connection node_1 call mtr.add_suppression("WSREP: Trying to continue unpaused monitor"); CREATE TABLE t1 ENGINE=InnoDB select 1 as a, 1 as b union select 2, 2; ALTER TABLE t1 add primary key(a); DELIMITER |; CREATE PROCEDURE p1(repeat_count INT) BEGIN DECLARE current_num int; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback; SET current_num = 0; WHILE current_num < repeat_count DO start transaction; update t1 set b=connection_id() where a=1; commit; SET current_num = current_num + 1; END WHILE; END| DELIMITER ;| --connection node_2 --let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = 'p1' --source include/wait_condition.inc --connect node_1_p1, 127.0.0.1, root, , test, $NODE_MYPORT_1 SET SESSION wsrep_sync_wait=0; send call p1(1000); --connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1 SET SESSION wsrep_sync_wait=0; send call p1(1000); --connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2 SET SESSION wsrep_sync_wait=0; send call p1(1000); --connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2 SET SESSION wsrep_sync_wait=0; send call p1(1000); connection node_1; let $counter=10; let $sleep_period=10; echo checking error log for 'BF lock wait long' message for $counter times every $sleep_period seconds ...; while($counter > 0) { --disable_query_log --disable_result_log eval do sleep($sleep_period); --enable_query_log --enable_result_log # use error 0,1 instead if want test to continue --error 1 exec grep 'BF lock wait long' $MYSQLTEST_VARDIR/log/mysqld.*.err; dec $counter; } --connection node_1_p1 --error 0,1213 --reap --connection node_1_p2 --error 0,1213 --reap --connection node_2_p1 --error 0,1213 --reap --connection node_2_p2 --error 0,1213 --reap --connection node_1 drop table t1; drop procedure p1; --disconnect node_1_p1 --disconnect node_1_p2 --disconnect node_2_p1 --disconnect node_2_p2