Bug #16682 Master and slave are not in sync state after execution of rpl_sys test on Win
Submitted: 20 Jan 2006 18:46 Modified: 23 Jan 2006 21:49
Reporter: Alexey Stroganov Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version:5.0.17a-cert OS:Windows (Win2003)
Assigned to: Alexey Stroganov CPU Architecture:Any

[20 Jan 2006 18:46] Alexey Stroganov
Description:
After execution of rpl_sys test suite master and slave are not in sync state. Such problem  happened on Windows box only. Scenario of test execution looks like this:

On Win box:
 - we start master/slave on windows box with help of mysql-test-run.pl 
 - initialize replication 
 - add permissions for remote linux host where client will be started

On remote Linux box:
 - load initial data set 
 - start desired number of clients
 - when test finished make dumps of databases (test and tpcb) from  master and slave 
 - compare dumps with diff.

There are two kind of  differences between master and slave databases:

  - for 'test' database we missed some records on slave side, i.e.
    we have more records on master that on slave.

    There are three types of records that are missed on slave side. Below are examples
    of such records:

    1) INSERT INTO `trans_tbl` VALUES (49676,'2006-01-2001:13:38', 'root@qa-suse9-x86.mysql.com',
                                       '2b66f286-daa2-1028-8165-df37729aad95','\0',
                                       'Going to test RBR for MySQL');

    2) INSERT INTO `viewer` VALUES (49131,10,100,1000);

    3) INSERT INTO `viewer_tbl1` VALUES (49131,10,100);

  - for 'tpcb' database some fields of the same rows have different values
    and also we missed some records on slave side

    For 'tpcb' database we have situation where most of the tables have differences
    between master and slave. Examples are below:

    1) diffs between master and slave for the same records

    -INSERT INTO `account` VALUES (3,1,'0.00','account updated');
    -INSERT INTO `account` VALUES (4,1,'-1.00','account updated');
    +INSERT INTO `account` VALUES (3,1,'1.00','account updated');
    +INSERT INTO `account` VALUES (4,1,'0.00','account updated');

    2) diffs between master and slave for the same record

    -INSERT INTO `branch` VALUES (61,'1.00','branch updated');
    +INSERT INTO `branch` VALUES (61,'0.00','FRESH BRANCH');

    3) only missed records on slave side
    -INSERT INTO `history` VALUES (485,32,25,1,'1.00','2006-01-20 04:14:21','root@qa-suse9-x86.my',
                                   '4514daa3-daa2-1028-8165-df37729aad95','completed trans');

    4) diffs between master and slave for the same records

    -INSERT INTO `teller` VALUES (47,'2.00','teller updated');
    +INSERT INTO `teller` VALUES (47,'1.00','teller updated');

How to repeat:
Run rpl_sys according to scenario provided in description. As test currently in not perfect state you can conact me directly to get detail info about rpl_sys test suite.
[23 Jan 2006 21:49] Alexey Stroganov
The problem was in test suite itself. We didn't wait enough time after finishing of test for applying of all pending statements from relay log on slave side.