Bug #29116 Test "rpl_change_master" returns different counters from relay
Submitted: 14 Jun 2007 17:17 Modified: 8 Aug 2007 15:15
Reporter: Joerg Bruehe Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:4.1.23 OS:MacOS (PPC 64 bit only)
Assigned to: Georgi Kodinov CPU Architecture:Any

[14 Jun 2007 17:17] Joerg Bruehe
Description:
Occurred during release build of 4.1.23, just on OS X PPC 64bit,
with different values in different configurations / runs.

If I spot it correct, the differing values are for "Relay_Log_Pos" and "Relay_Log_Space":

-------------------------------------------------------
*** r/rpl_change_master.result
--- r/rpl_change_master.reject
***************
*** 16,22
  1
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
! #     127.0.0.1       root    MASTER_MYPORT   1       master-bin.000001       273     slave-relay-bin.000002  258     mas
ter-bin.000001  No      No                                                      0               0       214     317     Non
e               0       No                                              #
  change master to master_user='root';
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
--- 16,22
  1
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
! #     127.0.0.1       root    MASTER_MYPORT   1       master-bin.000001       273     slave-relay-bin.000002  346     mas
ter-bin.000001  No      No                                                      0               0       214     5949    Non
e               0       No                                              #
  change master to master_user='root';
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
-------------------------------------------------------
OS X, PPC, 64 bit, "classic"

-------------------------------------------------------
*** r/rpl_change_master.result
--- r/rpl_change_master.reject
***************
*** 16,22
  1
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
! #     127.0.0.1       root    MASTER_MYPORT   1       master-bin.000001       273     slave-relay-bin.000002  258     mas
ter-bin.000001  No      No                                                      0               0       214     317     Non
e               0       No                                              #
  change master to master_user='root';
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
--- 16,22
  1
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
! #     127.0.0.1       root    MASTER_MYPORT   1       master-bin.000001       273     slave-relay-bin.000002  302     mas
ter-bin.000001  No      No                                                      0               0       214     10833   Non
e               0       No                                              #
  change master to master_user='root';
  show slave status;
  Slave_IO_State        Master_Host     Master_User     Master_Port     Connect_Retry   Master_Log_File Read_Master_Log_Pos
        Relay_Log_File  Relay_Log_Pos   Relay_Master_Log_File   Slave_IO_Running        Slave_SQL_Running       Replicate_D
o_DB    Replicate_Ignore_DB     Replicate_Do_Table      Replicate_Ignore_Table  Replicate_Wild_Do_Table Replicate_Wild_Igno
re_Table        Last_Errno      Last_Error      Skip_Counter    Exec_Master_Log_Pos     Relay_Log_Space Until_Condition Unt
il_Log_File     Until_Log_Pos   Master_SSL_Allowed      Master_SSL_CA_File      Master_SSL_CA_Path      Master_SSL_Cert Mas
ter_SSL_Cipher  Master_SSL_Key  Seconds_Behind_Master
-------------------------------------------------------
OS X, PPC, 64 bit, "max"

Different values in other configurations,
not copied here due to the 8 kB limit.

How to repeat:
Occurred when running the test suite.

Suggested fix:
It is *extremely* difficult to read these differences and to combine the affected value with its column tag.
Can't this "show" command use vertical output ?
[19 Jun 2007 10:19] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/29088

ChangeSet@1.2666, 2007-06-19 13:19:20+03:00, gkodinov@magare.gmz +2 -0
  Bug #29116: Test "rpl_change_master" returns different 
   counters from relay
  
  Updated the test to return columns vertically.
[19 Jun 2007 10:29] Joerg Bruehe
Ok to push.

But please ensure the bug is not set to "documenting" when this fix hits the main trees, because this just makes it easier to spot the different test results -
we still need to check why results (counters ?) differ, and whether that difference is acceptable (= we can mask it) or not (= needs to be fixed).

IMO, the bug needs to be set back to "verified" after this change is pushed, and hopefully subseqzuent runs willtell us more.
[25 Jun 2007 21:49] Bugs System
Pushed into 5.1.21-beta
[25 Jun 2007 21:51] Bugs System
Pushed into 5.0.46
[25 Jun 2007 21:52] Bugs System
Pushed into 4.1.24
[26 Jun 2007 8:21] Joerg Bruehe
Setting status back to "verified",
because that push just changes the output format to vertical.

This is necessary for better analysis, but doesn't fix the problem.

Next step will be to re-run a build + test using this change,
to check whether the bug is reproducible and to get better output.
Preferably do this in 4.1, but higher versions might also help.

There is no time frame yet when this will be done.