Hi, Zhenxing.
Thank you for review.
I agree with you so I removed FOREIGN_KEY_CHECKS on slave. May be the
bug gone away with other fixes.
If you have no objections pls approve in on bug report (in reviewer section)
He Zhenxing wrote:
> Hi Serge
>
> Thank you for your work!
>
> First, I don't think add SET FOREIGN_KEY_CHECKS on slave can help the
> issue because the test case uses RBR, and even if using SBR, the master
> will correctly recording the value of FOREIGN_KEY_CHECKS for the
> statement in the events. So SET FOREIGN_KEY_CHECKS on slave is not
> necessary. Add ORDER BY might be helpful.
>
> Second, I checked several recent pushbuild results of mysql-6.0, and did
> not find any failure of this test case, so I think maybe this problem
> has already been fixed. I would suggest you to do a more complete check
> to see if this test case still fails in the recent pushbuild, if you can
> find any, check the logs and try to figure out the problem with that, if
> not, I think this is more likely a server problem, and has already been
> fixed, so you can just add a comment and close this bug.
>
> On 2008-04-04 Fri 01:05 +0400,Serge Kozlov wrote:
>> Below is the list of changes that have just been committed into a local
>> 6.0 repository of skozlov. When skozlov does a push these changes
>> will be propagated to the main repository and, within 24 hours after the
>> push, to the public repository.
>> For information on how to access the public repository
>> see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
>>
>> ChangeSet@stripped, 2008-04-04 01:05:25+04:00, skozlov@stripped +3 -0
>> Bug#32673.
>> 1. Added ORDER BY for all SELECT.
>> 2. Set FOREIGN_KEY_CHECKS variable on slave to avoid issues with FK updates.
>>
>> mysql-test/extra/rpl_tests/rpl_row_sp002.test@stripped, 2008-04-04 01:05:19+04:00,
> skozlov@stripped +19 -16
>> updated test case
>>
>> mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result@stripped, 2008-04-04
> 01:05:19+04:00, skozlov@stripped +17 -16
>> updated result file
>>
>> mysql-test/suite/rpl/t/disabled.def@stripped, 2008-04-04 01:05:19+04:00,
> skozlov@stripped +0 -1
>> updated disabled.def
>>
>> diff -Nrup a/mysql-test/extra/rpl_tests/rpl_row_sp002.test
> b/mysql-test/extra/rpl_tests/rpl_row_sp002.test
>> --- a/mysql-test/extra/rpl_tests/rpl_row_sp002.test 2007-03-29 22:31:01 +04:00
>> +++ b/mysql-test/extra/rpl_tests/rpl_row_sp002.test 2008-04-04 01:05:19 +04:00
>> @@ -56,6 +56,9 @@ delimiter ;|
>> let $message=< -- test 1 call p1 -- >;
>> --source include/show_msg.inc
>> SET FOREIGN_KEY_CHECKS=1;
>> +--connection slave
>> +SET FOREIGN_KEY_CHECKS=1;
>> +--connection master
>> call test.p1('texas');
>> call test.p1('Live');
>> call test.p1('next');
>> @@ -66,31 +69,31 @@ call test.p1('MySQL');
>> let $message=< -- test 1 select master after p1 -- >;
>> --source include/show_msg.inc
>>
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> let $message=< -- test 1 select slave after p1 -- >;
>> --source include/show_msg.inc
>> save_master_pos;
>> connection slave;
>> sync_with_master;
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> let $message=< -- test 1 call p2 & select master -- >;
>> --source include/show_msg.inc
>> connection master;
>> call test.p2(4);
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> let $message=< -- test 1 select slave after p2 -- >;
>> --source include/show_msg.inc
>> save_master_pos;
>> connection slave;
>> sync_with_master;
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> connection master;
>> #show binlog events;
>> @@ -131,16 +134,16 @@ CALL test.p1(6,'MySQL');
>>
>> let $message=< -- test 2 select Master after p1 -- >;
>> --source include/show_msg.inc
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> let $message=< -- test 2 select Slave after p1 -- >;
>> --source include/show_msg.inc
>> save_master_pos;
>> connection slave;
>> sync_with_master;
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> let $message=< -- test 2 call p2 & select Master -- >;
>> --source include/show_msg.inc
>> @@ -148,16 +151,16 @@ connection master;
>> CALL test.p2(2);
>> CALL test.p2(4);
>> CALL test.p2(6);
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> let $message=< -- test 1 select Slave after p2 -- >;
>> --source include/show_msg.inc
>> save_master_pos;
>> connection slave;
>> sync_with_master;
>> -SELECT * FROM test.t1;
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t1 ORDER BY a;
>> +SELECT * FROM test.t2 ORDER BY a;
>>
>> connection master;
>> #show binlog events;
>> diff -Nrup a/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
> b/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
>> --- a/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result 2007-06-27 16:27:30
> +04:00
>> +++ b/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result 2008-04-04 01:05:19
> +04:00
>> @@ -25,6 +25,7 @@ end|
>> < -- test 1 call p1 -- >
>> ------------------------
>> SET FOREIGN_KEY_CHECKS=1;
>> +SET FOREIGN_KEY_CHECKS=1;
>> call test.p1('texas');
>> call test.p1('Live');
>> call test.p1('next');
>> @@ -34,7 +35,7 @@ call test.p1('MySQL');
>>
>> < -- test 1 select master after p1 -- >
>> ---------------------------------------
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 1 texas
>> 2 Live
>> @@ -42,7 +43,7 @@ a t
>> 4 to
>> 5 OK
>> 6 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 1 1
>> 2 2
>> @@ -53,7 +54,7 @@ a f
>>
>> < -- test 1 select slave after p1 -- >
>> --------------------------------------
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 1 texas
>> 2 Live
>> @@ -61,7 +62,7 @@ a t
>> 4 to
>> 5 OK
>> 6 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 1 1
>> 2 2
>> @@ -73,12 +74,12 @@ a f
>> < -- test 1 call p2 & select master -- >
>> ----------------------------------------
>> call test.p2(4);
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 4 to
>> 5 OK
>> 6 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 4 4
>> 5 5
>> @@ -86,12 +87,12 @@ a f
>>
>> < -- test 1 select slave after p2 -- >
>> --------------------------------------
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 4 to
>> 5 OK
>> 6 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 4 4
>> 5 5
>> @@ -125,7 +126,7 @@ CALL test.p1(6,'MySQL');
>>
>> < -- test 2 select Master after p1 -- >
>> ---------------------------------------
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 1 texas
>> 2 Live
>> @@ -133,7 +134,7 @@ a t
>> 4 to
>> 5 OK
>> 6 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 1 6
>> 2 6
>> @@ -144,7 +145,7 @@ a f
>>
>> < -- test 2 select Slave after p1 -- >
>> --------------------------------------
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 1 texas
>> 2 Live
>> @@ -152,7 +153,7 @@ a t
>> 4 to
>> 5 OK
>> 6 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 1 6
>> 2 6
>> @@ -166,7 +167,7 @@ a f
>> CALL test.p2(2);
>> CALL test.p2(4);
>> CALL test.p2(6);
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 1 texas
>> 3 next
>> @@ -174,7 +175,7 @@ a t
>> 20 Live
>> 40 to
>> 60 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 1 6
>> 3 6
>> @@ -185,7 +186,7 @@ a f
>>
>> < -- test 1 select Slave after p2 -- >
>> --------------------------------------
>> -SELECT * FROM test.t1;
>> +SELECT * FROM test.t1 ORDER BY a;
>> a t
>> 1 texas
>> 3 next
>> @@ -193,7 +194,7 @@ a t
>> 20 Live
>> 40 to
>> 60 MySQL
>> -SELECT * FROM test.t2;
>> +SELECT * FROM test.t2 ORDER BY a;
>> a f
>> 1 6
>> 3 6
>> diff -Nrup a/mysql-test/suite/rpl/t/disabled.def
> b/mysql-test/suite/rpl/t/disabled.def
>> --- a/mysql-test/suite/rpl/t/disabled.def 2008-03-30 11:17:06 +04:00
>> +++ b/mysql-test/suite/rpl/t/disabled.def 2008-04-04 01:05:19 +04:00
>> @@ -23,7 +23,6 @@ rpl_extraColmaster_innodb : BUG#30854 :
>> rpl_extraColmaster_myisam : BUG#30854
>> rpl_view : Bug#32654: rpl_view.test fails randomly
>> rpl_ndb_multi : Bug#30751: rpl_ndb_multi missing row in output
>> -rpl_row_sp002_innodb : Bug#32673 rpl_row_sp002_innodb.test fails randomly
>> rpl_ssl : Bug#32217 rpl_ssl fails with different number of
> records on master and slave
>> rpl_row_until : Bug#28772 rpl_row_until fails in pushbuild
>> rpl_log_pos : Bug#8693 Test 'rpl_log_pos' fails sometimes
>
>
>
--
Serge Kozlov, QA Developer
MySQL AB, Moscow, Russia, www.mysql.com
Office:
Are you MySQL certified? www.mysql.com/certification