Looks good, Approved.
On 10/13/2010 08:22 AM, Dmitry Lenev wrote:
> #At file:///home/dlenev/src/bzr/mysql-5.5-rt-57422/ based on
> revid:jon.hauglid@stripped
>
> 3162 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 07:20:50 +0000
> @@ -36,9 +36,22 @@ send CALL test.p1();
>
> connection master;
> # To make sure tha 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();
> 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 07:20:50 +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
>
>
>
>
>