Commit ec505e95 authored by Dmitry Lenev's avatar Dmitry Lenev

Fix for bug #57422 "rpl_row_sp003 sporadically fails under

heavy load".

rpl_row_sp003.test has sporadically failed when run on machine
under heavy load or on slow hardware.

This patch fixes races in the test which were causing these
failures and also removes unnecessary 100 second wait from it. 
parent eb882fe4
...@@ -35,10 +35,23 @@ connection master1; ...@@ -35,10 +35,23 @@ connection master1;
send CALL test.p1(); send CALL test.p1();
connection master; connection master;
# To make sure tha the call on master1 arrived at the get_lock # Make sure that the call on master1 arrived at the get_lock.
sleep 1; let $wait_condition=
select count(*) = 1 from information_schema.processlist
where state = 'User lock' and
info = 'SELECT get_lock("test", 100)';
--source include/wait_condition.inc
CALL test.p2(); CALL test.p2();
SELECT release_lock("test"); SELECT release_lock("test");
connection master1;
# Reap CALL test.p1() to ensure that it has fully completed
# before doing any selects on test.t1.
--reap
# Release lock acquired by it.
SELECT release_lock("test");
connection master;
SELECT * FROM test.t1; SELECT * FROM test.t1;
#show binlog events; #show binlog events;
--source include/wait_for_ndb_to_binlog.inc --source include/wait_for_ndb_to_binlog.inc
...@@ -51,6 +64,7 @@ DROP TABLE IF EXISTS test.t1; ...@@ -51,6 +64,7 @@ DROP TABLE IF EXISTS test.t1;
eval CREATE TABLE test.t1(a INT,PRIMARY KEY(a))ENGINE=$engine_type; eval CREATE TABLE test.t1(a INT,PRIMARY KEY(a))ENGINE=$engine_type;
CALL test.p2(); CALL test.p2();
CALL test.p1(); CALL test.p1();
SELECT release_lock("test");
SELECT * FROM test.t1; SELECT * FROM test.t1;
sync_slave_with_master; sync_slave_with_master;
......
...@@ -26,6 +26,11 @@ CALL test.p2(); ...@@ -26,6 +26,11 @@ CALL test.p2();
SELECT release_lock("test"); SELECT release_lock("test");
release_lock("test") release_lock("test")
1 1
get_lock("test", 100)
1
SELECT release_lock("test");
release_lock("test")
1
SELECT * FROM test.t1; SELECT * FROM test.t1;
a a
5 5
...@@ -37,7 +42,10 @@ CREATE TABLE test.t1(a INT,PRIMARY KEY(a))ENGINE=INNODB; ...@@ -37,7 +42,10 @@ CREATE TABLE test.t1(a INT,PRIMARY KEY(a))ENGINE=INNODB;
CALL test.p2(); CALL test.p2();
CALL test.p1(); CALL test.p1();
get_lock("test", 100) get_lock("test", 100)
0 1
SELECT release_lock("test");
release_lock("test")
1
SELECT * FROM test.t1; SELECT * FROM test.t1;
a a
8 8
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment