Bug #45214 get_master_version_and_clock does not report error when queries fail
Submitted: 31 May 2009 6:05 Modified: 5 Aug 2009 12:51
Reporter: Zhenxing He Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.1, 6.0 OS:Any
Assigned to: Daogang Qu CPU Architecture:Any

[31 May 2009 6:05] Zhenxing He
Description:
function get_master_version_and_clock in sql/slave.cc does not report  error when queries fail on master. This would make the slave to get a false pass when the query failed because of network problems when running the query on master.

This was requested by Mark Callaghan in comments to BUG#41400.

How to repeat:
Reading the source code of get_master_version_and_clock in sql/slave.cc, which ignores the error and continues when queries does not return success on master.

Suggested fix:
get_master_version_and_clock should return error if the query fails and retry if the error was caused by a transient network problem, and fail otherwise.
[23 Jun 2009 8:37] 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/76881

2941 Dao-Gang.Qu@sun.com	2009-06-23
      Bug #45214  get_master_version_and_clock does not report error when queries fail
      
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores error and passes directly 
      when queries get a failed response from master because of network transient disconnection between master and slave 
      or get a successful response but the result retrieved is NULL.
      
      The "get_master_version_and_clock(...)" function should retry to connect master if the queries get a failed response 
      from master because of network transient disconnection between master and slave. And it should report a NULL value error 
      and stop the slave I/O thread if the queries get a successful response but the result retrieved from master is NULL.
     @ sql/slave.cc
        Update the slave.cc for fixing bug #45214
[25 Jun 2009 9:25] 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/77124

2941 Dao-Gang.Qu@sun.com	2009-06-25
      Bug #45214  get_master_version_and_clock does not report error when queries fail
      
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores error 
      and passes directly when queries get a failed response from master because of 
      network transient disconnection between master and slave or get a successful 
      response but the result retrieved is NULL.
      
      The "get_master_version_and_clock(...)" function should retry to connect master 
      if the queries get a failed response from master because of network transient 
      disconnection between master and slave. And it should report a NULL value error 
      and stop the slave I/O thread if the queries get a successful response but the 
      result retrieved from master is NULL.
     @ mysql-test/include/restart_slave_on_disconnection.inc
        Test script for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_clock_on_disconnection.result
        Test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_clock_on_disconnection.test
        Test script for bug #45214
     @ sql/slave.cc
        Update the slave.cc for fixing bug #45214
[27 Jun 2009 2:32] 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/77383

2941 Dao-Gang.Qu@sun.com	2009-06-27
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores error 
      and passes directly when queries get a failed response from master because of 
      transient network problems between master and slave or get a successful response 
      but the value of relational variable is not existent in the result retrieved.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master 
      if the queries get a failed response from master because of transient network 
      problems between master and slave. And it should report a nonexistent value error 
      or print a warning information if the queries get a successful response but the 
      value of relational variable is not existent in the result retrieved.   	
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_clock_on_disconnection.test
        Test script for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_clock_on_disconnection.result
        Test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_clock_on_disconnection.test
        Test script for bug #45214
     @ sql/slave.cc
        Update the slave.cc for fixing bug #45214
[1 Jul 2009 2:53] 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/77603

2941 Dao-Gang.Qu@sun.com	2009-07-01
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning information if the queries succeed
      but the result retrieved is empty.	
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Test script for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Test script for bug #45214
     @ sql/slave.cc
        Update the slave.cc for fixing bug #45214
[1 Jul 2009 6:16] 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/77612

2941 Dao-Gang.Qu@sun.com	2009-07-01
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)	
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Test script for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Test script for bug #45214
     @ sql/slave.cc
        Update the slave.cc for fixing bug #45214
[1 Jul 2009 13:34] 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/77663

2941 Dao-Gang.Qu@sun.com	2009-07-01
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Test script for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Test script for bug #45214
     @ sql/slave.cc
        Update the slave.cc for fixing bug #45214
[2 Jul 2009 7:15] 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/77727

2941 Dao-Gang.Qu@sun.com	2009-07-02
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        For fixing bug #45214,
        The 'is_network_error()' function is added for checking if the error is caused by network.
        The 'get_master_version_and_clock()' result set function is changed with the new value to force reconnecting when queries fail.
[2 Jul 2009 10:56] 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/77757

2941 Dao-Gang.Qu@sun.com	2009-07-02
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[3 Jul 2009 13:05] 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/77902

2941 Dao-Gang.Qu@sun.com	2009-07-03
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[6 Jul 2009 7:23] 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/77972

2941 Dao-Gang.Qu@sun.com	2009-07-06
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[6 Jul 2009 7:54] 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/77975

2941 Dao-Gang.Qu@sun.com	2009-07-06
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[7 Jul 2009 3:12] 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/78071

2941 Dao-Gang.Qu@sun.com	2009-07-07
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[7 Jul 2009 10:30] 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/78108

2941 Dao-Gang.Qu@sun.com	2009-07-07
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[10 Jul 2009 9:03] 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/78352

3018 Dao-Gang.Qu@sun.com	2009-07-10
      Bug #45214  get_master_version_and_clock does not report error when queries fail
            
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
      
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[14 Jul 2009 1:43] 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/78608

3019 Dao-Gang.Qu@sun.com	2009-07-14
      Bug #45214  get_master_version_and_clock does not report error when queries fail
              
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
        
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[15 Jul 2009 15:05] 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/78742

3465 Dao-Gang.Qu@sun.com	2009-07-15 [merge]
      Bug #45214  get_master_version_and_clock does not report error when queries fail
              
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
        
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[15 Jul 2009 15:31] 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/78745

3465 Dao-Gang.Qu@sun.com	2009-07-15 [merge]
      Bug #45214  get_master_version_and_clock does not report error when queries fail
              
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
        
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[15 Jul 2009 15:45] 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/78746

3022 Dao-Gang.Qu@sun.com	2009-07-15
      Bug #45214  get_master_version_and_clock does not report error when queries fail
              
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
        
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[16 Jul 2009 7:00] 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/78801

3469 Dao-Gang.Qu@sun.com	2009-07-16 [merge]
      Bug #45214  get_master_version_and_clock does not report error when queries fail
              
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
        
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[16 Jul 2009 7:01] 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/78802

3029 Dao-Gang.Qu@sun.com	2009-07-16
      Bug #45214  get_master_version_and_clock does not report error when queries fail
              
      The "get_master_version_and_clock(...)" function in sql/slave.cc ignores 
      error and passes directly when queries fail, or queries succeed 
      but the result retrieved is empty.
        
      The "get_master_version_and_clock(...)" function should try to reconnect master
      if queries fail because of transient network problems, and fail otherwise.
      The I/O thread should print a warning if the some system variables do not 
      exist on master (very old master)
     @ mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ mysql-test/suite/rpl/r/rpl_get_master_version_and_clock.result
        Added test result for bug #45214
     @ mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test
        Added test file for bug #45214
     @ sql/slave.cc
        The 'is_network_error()' function is added for checking if the error is caused by network.
        Added a new return value (2) to 'get_master_version_and_clock()' function result set 
        to indicate transient network errors when queries fail, and the caller should 
        try to reconnect in this case.
[17 Jul 2009 5:08] 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/78907

3471 Dao-Gang.Qu@sun.com	2009-07-17
      Bug #45214  get_master_version_and_clock does not report error when queries fail
      
      Append the patch for resolveing problems, which have been brought by committing BUG#45214.
[17 Jul 2009 5:12] 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/78909

3031 Dao-Gang.Qu@sun.com	2009-07-17
      Bug #45214  get_master_version_and_clock does not report error when queries fail
      
      Append the patch for resolving the problems, which have been brought by commiting bug#45214.
[17 Jul 2009 7:29] Daogang Qu
pushed to mysql-5.1-bugteam and mysql-pe
[4 Aug 2009 19:50] Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090804194615-h40sa098mx4z49qg) (version source revid:dao-gang.qu@sun.com-20090720050241-m1jx1y1c80aphjyl) (merge vers: 5.4.4-alpha) (pib:11)
[4 Aug 2009 20:45] Bugs System
Pushed into 5.1.38 (revid:davi.arnaut@sun.com-20090804204317-ggodqkik7de6nfpz) (version source revid:davi.arnaut@sun.com-20090804204317-ggodqkik7de6nfpz) (merge vers: 5.1.38) (pib:11)
[5 Aug 2009 12:51] Jon Stephens
Documented bugfix in the 5.1.38 and 5.4.4 changelogs as follows:

      The internal function get_master_version_and_clock() (defined in 
      sql/slave.cc) ignored errors and passed directly when queries failed, 
      or when queries succeeded but the result retrieved was empty. Now this 
      function tries to reconnect the master if a query fails due to transient 
      network problems, and to fail otherwise. The I/O thread now prints a 
      warning if the some system variables do not exist on master (in the event 
      the master is a very old version of MySQQL, compared to the slave.)
[12 Aug 2009 21:59] Paul Dubois
Noted in 5.4.2 changelog because next 5.4 version will be 5.4.2 and not 5.4.4.
[14 Aug 2009 22:50] Paul Dubois
Ignore previous comment about 5.4.2.
[1 Oct 2009 5:58] Bugs System
Pushed into 5.1.39-ndb-6.3.28 (revid:jonas@mysql.com-20091001055605-ap2kiaarr7p40mmv) (version source revid:jonas@mysql.com-20091001055605-ap2kiaarr7p40mmv) (merge vers: 5.1.39-ndb-6.3.28) (pib:11)
[1 Oct 2009 7:25] Bugs System
Pushed into 5.1.39-ndb-7.0.9 (revid:jonas@mysql.com-20091001072547-kv17uu06hfjhgjay) (version source revid:jonas@mysql.com-20091001071652-irejtnumzbpsbgk2) (merge vers: 5.1.39-ndb-7.0.9) (pib:11)
[1 Oct 2009 13:25] Bugs System
Pushed into 5.1.39-ndb-7.1.0 (revid:jonas@mysql.com-20091001123013-g9ob2tsyctpw6zs0) (version source revid:jonas@mysql.com-20091001123013-g9ob2tsyctpw6zs0) (merge vers: 5.1.39-ndb-7.1.0) (pib:11)
[5 Oct 2009 10:50] Bugs System
Pushed into 5.1.39-ndb-6.2.19 (revid:jonas@mysql.com-20091005103850-dwij2dojwpvf5hi6) (version source revid:jonas@mysql.com-20090930185117-bhud4ek1y0hsj1nv) (merge vers: 5.1.39-ndb-6.2.19) (pib:11)
[7 Dec 2009 14:23] James Day
This bug fix introduced bug #48369 because the code that was supposed to ensure compatibility with 4.x used a statement incompatible with 4.0, breaking replication from 4.0 to 5.1. The slave sends that statement to the older master.
[16 Jan 2010 0:42] Paul Dubois
Noted in 5.5.0 changelog.