Replaced infinite loop in procedure with limited loop to avoid
hang.
This commit is contained in:
parent
1dec60c795
commit
845e3c9801
@ -1,23 +1,41 @@
|
||||
connection node_1;
|
||||
CREATE TABLE t1 ENGINE=InnoDB select 1 as a, 1 as b union select 2, 2;
|
||||
ALTER TABLE t1 add primary key(a);
|
||||
CREATE PROCEDURE p1()
|
||||
CREATE PROCEDURE p1(repeat_count INT)
|
||||
BEGIN
|
||||
DECLARE current_num int;
|
||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback;
|
||||
WHILE 1 DO
|
||||
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|
|
||||
connection node_2;
|
||||
connect node_1_p1, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||
call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
call p1(1000);
|
||||
connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||
call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
call p1(1000);
|
||||
connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2;
|
||||
call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
call p1(1000);
|
||||
connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2;
|
||||
call p1;
|
||||
connection default;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
call p1(1000);
|
||||
connection node_1;
|
||||
checking error log for 'BF lock wait long' message for 10 times every 10 seconds ...
|
||||
connection node_1_p1;
|
||||
connection node_1_p2;
|
||||
connection node_2_p1;
|
||||
connection node_2_p2;
|
||||
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;
|
||||
|
@ -1,34 +1,47 @@
|
||||
--source include/galera_cluster.inc
|
||||
--source include/big_test.inc
|
||||
|
||||
|
||||
--connection node_1
|
||||
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()
|
||||
CREATE PROCEDURE p1(repeat_count INT)
|
||||
BEGIN
|
||||
DECLARE current_num int;
|
||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback;
|
||||
WHILE 1 DO
|
||||
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
|
||||
send call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
send call p1(1000);
|
||||
--connect node_1_p2, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
||||
send call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
send call p1(1000);
|
||||
--connect node_2_p1, 127.0.0.1, root, , test, $NODE_MYPORT_2
|
||||
send call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
send call p1(1000);
|
||||
--connect node_2_p2, 127.0.0.1, root, , test, $NODE_MYPORT_2
|
||||
send call p1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
send call p1(1000);
|
||||
|
||||
connection default;
|
||||
connection node_1;
|
||||
let $counter=10;
|
||||
let $sleep_period=10;
|
||||
|
||||
@ -46,7 +59,26 @@ while($counter > 0)
|
||||
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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user