Hi Andrei,
Patch approved!
Andrei Elkin wrote:
> #At file:///home/andrei/MySQL/BZR/FIXES/5.1-bt-bug38205-stop_slave_trans/ based on
> revid:aelkin@stripped
>
> 2837 Andrei Elkin 2009-04-09
> Bug #38205 Row-based Replication (RBR) causes inconsistencies:
> HA_ERR_FOUND_DUPP_KEY
> Bug#319 if while a non-transactional slave is replicating a transaction
> possible problem
>
> only testing related: addressing reviewers' comments.
> modified:
> mysql-test/suite/bugs/r/rpl_bug38205.result
> mysql-test/suite/bugs/t/rpl_bug38205.test
> mysql-test/suite/rpl/r/rpl_start_stop_slave.result
> mysql-test/suite/rpl/t/rpl_start_stop_slave.test
>
> per-file messages:
> mysql-test/suite/bugs/r/rpl_bug38205.result
> new results.
> mysql-test/suite/bugs/t/rpl_bug38205.test
> changing output per reviewer's offering.
> mysql-test/suite/rpl/r/rpl_start_stop_slave.result
> new results.
> mysql-test/suite/rpl/t/rpl_start_stop_slave.test
> refining tests for Bug #38205, Bug#319 to start slave with the necessary
> synchronization;
> changing output per reviewer's offering;
> removing redundant wait for stop.
> === modified file 'mysql-test/suite/bugs/r/rpl_bug38205.result'
> --- a/mysql-test/suite/bugs/r/rpl_bug38205.result 2009-03-26 08:25:06 +0000
> +++ b/mysql-test/suite/bugs/r/rpl_bug38205.result 2009-04-09 13:05:41 +0000
> @@ -44,7 +44,7 @@ zero
> 0
> stop slave sql_thread;
> rollback;
> -*** sql thread is running: No ***
> +*** sql thread is *not* running: No ***
> *** the prove: the stopped slave has rolled back the current transaction ***
> zero
> 0
>
> === modified file 'mysql-test/suite/bugs/t/rpl_bug38205.test'
> --- a/mysql-test/suite/bugs/t/rpl_bug38205.test 2009-03-26 08:25:06 +0000
> +++ b/mysql-test/suite/bugs/t/rpl_bug38205.test 2009-04-09 13:05:41 +0000
> @@ -1,5 +1,6 @@
> #
> # Bug #38205 Row-based Replication (RBR) causes inconsistencies:
> HA_ERR_FOUND_DUPP_KEY
> +# Bug#319 if while a non-transactional slave is replicating a transaction possible
> problem
> #
> # Verifying the fact that STOP SLAVE in the middle of a group execution waits
> # for the end of the group before the slave sql thread will stop.
> @@ -143,7 +144,7 @@ connection slave1;
> reap;
> source include/wait_for_slave_sql_to_stop.inc;
> let $sql_status= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1);
> ---echo *** sql thread is running: $sql_status ***
> +--echo *** sql thread is *not* running: $sql_status ***
>
> let $pos1_slave= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1);
>
>
> === modified file 'mysql-test/suite/rpl/r/rpl_start_stop_slave.result'
> --- a/mysql-test/suite/rpl/r/rpl_start_stop_slave.result 2009-03-26 08:25:06 +0000
> +++ b/mysql-test/suite/rpl/r/rpl_start_stop_slave.result 2009-04-09 13:05:41 +0000
> @@ -28,7 +28,7 @@ zero
> 0
> stop slave;
> rollback;
> -*** sql thread is running: No ***
> +*** sql thread is *not* running: No ***
> *** the prove: the stopped slave has finished the current transaction ***
> five
> 5
> @@ -36,5 +36,5 @@ zero
> 0
> one
> 1
> -start slave;
> +include/start_slave.inc
> drop table t1i, t2m;
>
> === modified file 'mysql-test/suite/rpl/t/rpl_start_stop_slave.test'
> --- a/mysql-test/suite/rpl/t/rpl_start_stop_slave.test 2009-03-26 08:25:06 +0000
> +++ b/mysql-test/suite/rpl/t/rpl_start_stop_slave.test 2009-04-09 13:05:41 +0000
> @@ -38,7 +38,8 @@ sync_with_master;
>
>
> #
> -# Bug #38205 Row-based Replication (RBR) causes inconsistencies...
> +# Bug#38205 Row-based Replication (RBR) causes inconsistencies...
> +# Bug#319 if while a non-transactional slave is replicating a transaction...
> #
> # Verifying that STOP SLAVE does not interrupt excution of a group
> # execution of events if the group can not roll back.
> @@ -93,14 +94,13 @@ connection slave1;
> reap;
> source include/wait_for_slave_to_stop.inc;
> let $sql_status= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1);
> ---echo *** sql thread is running: $sql_status ***
> +--echo *** sql thread is *not* running: $sql_status ***
>
>
> connection master;
> let $pos1_master= query_get_value(SHOW MASTER STATUS, Position, 1);
>
> connection slave;
> -source include/wait_for_slave_sql_to_stop.inc;
>
> let $pos1_slave= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1);
>
> @@ -112,7 +112,7 @@ eval select $pos1_master - $pos1_slave a
> eval select $pos1_slave > $pos0_slave as one;
> --enable_query_log
>
> -start slave;
> +source include/start_slave.inc;
>
> # clean-up
> connection master;
>
>