#At file:///home/dlenev/src/bzr/mysql-5.5-rt-57422/ based on revid:kostja@stripped
3163 Dmitry Lenev 2010-10-13
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.
modified:
mysql-test/extra/rpl_tests/rpl_row_sp003.test
mysql-test/suite/rpl/r/rpl_row_sp003.result
=== modified file 'mysql-test/extra/rpl_tests/rpl_row_sp003.test'
--- a/mysql-test/extra/rpl_tests/rpl_row_sp003.test 2009-11-26 23:32:01 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_row_sp003.test 2010-10-13 11:21:45 +0000
@@ -35,10 +35,23 @@ connection master1;
send CALL test.p1();
connection master;
-# To make sure tha the call on master1 arrived at the get_lock
-sleep 1;
+# Make sure that the call on master1 arrived at the get_lock.
+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();
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;
#show binlog events;
--source include/wait_for_ndb_to_binlog.inc
@@ -51,6 +64,7 @@ DROP TABLE IF EXISTS test.t1;
eval CREATE TABLE test.t1(a INT,PRIMARY KEY(a))ENGINE=$engine_type;
CALL test.p2();
CALL test.p1();
+SELECT release_lock("test");
SELECT * FROM test.t1;
sync_slave_with_master;
=== modified file 'mysql-test/suite/rpl/r/rpl_row_sp003.result'
--- a/mysql-test/suite/rpl/r/rpl_row_sp003.result 2007-06-27 12:28:02 +0000
+++ b/mysql-test/suite/rpl/r/rpl_row_sp003.result 2010-10-13 11:21:45 +0000
@@ -26,6 +26,11 @@ CALL test.p2();
SELECT release_lock("test");
release_lock("test")
1
+get_lock("test", 100)
+1
+SELECT release_lock("test");
+release_lock("test")
+1
SELECT * FROM test.t1;
a
5
@@ -37,7 +42,10 @@ CREATE TABLE test.t1(a INT,PRIMARY KEY(a
CALL test.p2();
CALL test.p1();
get_lock("test", 100)
-0
+1
+SELECT release_lock("test");
+release_lock("test")
+1
SELECT * FROM test.t1;
a
8
Attachment: [text/bzr-bundle] bzr/dmitry.lenev@oracle.com-20101013112145-olvr6c2xn4m8gazk.bundle