#At file:///home/daogang/bzrwork/bug57918/mysql-trunk-bugfixing/ based on revid:jorgen.loland@stripped
3443 Dao-Gang.Qu@stripped 2010-12-17
Bug #57918 rpl_get_master_version_and_clock times out sporadically
The reason is that sometimes the slave is unblocked before the
master server is really shutdown.
Symptom 1, found warnings/errors in server log file.
In the situation, the 'get_master_version_and_clock' func
will return normally instead of network error expected.
Then the 'handle_slave_io' func will go to invoke
'get_master_uuid' func, which will return normally if
the master server is still alive. Then the process will
go on until invoke 'request_dump' func, which will print
the "Error on COM_BINLOG_DUMP: 2003 Can't connect to
MySQL server on '127.0.0.1' (111), will retry in 1 secs"
error as symptom reported if the server is really shutdown
in the moment, while the test is waiting for the network
Symptom 2, timeout after 900 seconds
In the situation, the 'get_master_version_and_clock',
get_master_uuid, and 'request_dump' funcs will return
normally if the master server is alive during the period,
then the 'handle_slave_io' func will enter
'while (!io_slave_killed(thd,mi))' block and exit with error
when fail to reconnect master, which is really shutdown
at that time. Then the test will not have a chance to start
master, because during the period it will stall there to wait
for a network error until it exits with a timeout error.
To fix these problems, we source wait_until_disconnected.inc
after shutdown master server for guaranteeing the master
server is really shutdown before the slave is unblocked.
Update test to guarantee the master server is really
shutdown before the slave is unblocked.
=== modified file 'mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test'
--- a/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test 2010-11-26 13:39:15 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test 2010-12-17 09:49:24 +0000
@@ -58,6 +58,7 @@ connection master;
# Send shutdown to the connected server and give
# it 10 seconds to die before zapping it
--echo slave is unblocked
Attachment: [text/bzr-bundle] email@example.com
|• bzr commit into mysql-trunk-bugfixing branch (Dao-Gang.Qu:3443) Bug#57918||Dao-Gang.Qu||17 Dec|