From: Date: August 25 2008 4:38pm Subject: Re: bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442 List-Archive: http://lists.mysql.com/commits/52458 Message-Id: <87k5e5tb16.fsf@koti.dsl.inet.fi> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Serge, hello. Could you please start with the problem desciption? I think it is Problem: using sleep() in the test cased its indeterministic execution. > #At file:///home/ksm/sun/repo/mysql-5.0-rpl-bug22442/ > > 2613 Serge Kozlov 2008-08-25 > Bug#22442: > 1. Added vertical output for SHOW SLAVE STATUS and waiting starting/stopping slave instead sleep. > 2. Updated the result file. ok > modified: > mysql-test/r/rpl_flush_log_loop.result > mysql-test/t/rpl_flush_log_loop.test > > === modified file 'mysql-test/r/rpl_flush_log_loop.result' > --- a/mysql-test/r/rpl_flush_log_loop.result 2007-10-10 07:21:11 +0000 > +++ b/mysql-test/r/rpl_flush_log_loop.result 2008-08-25 09:23:15 +0000 > @@ -20,5 +20,36 @@ master_password='',master_port=SLAVE_POR > start slave; > flush logs; > 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_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master > -# 127.0.0.1 root SLAVE_PORT 60 slave-bin.000001 208 # # slave-bin.000001 Yes Yes 0 0 208 # None 0 No # > +Slave_IO_State # > +Master_Host 127.0.0.1 > +Master_User root > +Master_Port 9306 > +Connect_Retry 1 > +Master_Log_File master-bin.000001 > +Read_Master_Log_Pos 98 > +Relay_Log_File # > +Relay_Log_Pos # > +Relay_Master_Log_File master-bin.000001 > +Slave_IO_Running Yes > +Slave_SQL_Running Yes > +Replicate_Do_DB > +Replicate_Ignore_DB > +Replicate_Do_Table > +Replicate_Ignore_Table # > +Replicate_Wild_Do_Table > +Replicate_Wild_Ignore_Table > +Last_Errno 0 > +Last_Error > +Skip_Counter 0 > +Exec_Master_Log_Pos 98 > +Relay_Log_Space # > +Until_Condition None > +Until_Log_File > +Until_Log_Pos 0 > +Master_SSL_Allowed No > +Master_SSL_CA_File > +Master_SSL_CA_Path > +Master_SSL_Cert > +Master_SSL_Cipher > +Master_SSL_Key > +Seconds_Behind_Master # > > === modified file 'mysql-test/t/rpl_flush_log_loop.test' > --- a/mysql-test/t/rpl_flush_log_loop.test 2007-10-10 07:21:11 +0000 > +++ b/mysql-test/t/rpl_flush_log_loop.test 2008-08-25 09:23:15 +0000 > @@ -8,20 +8,22 @@ show variables like 'relay_log%'; > > connection slave; > stop slave; There is no need for waiting at all. Notice, that when `stop slave' returns the status' are Slave_IO_Running NO Slave_SQL_Running NO by the algorithm of `stop slave'. Hence, wait_for_slave_to_stop is never needed if the only point is to ensure the running status' are NO. > +--source include/wait_for_slave_to_stop.inc > --replace_result $MASTER_MYPORT MASTER_PORT > eval change master to master_host='127.0.0.1',master_user='root', > master_password='',master_port=$MASTER_MYPORT; > start slave; > +--source include/wait_for_slave_to_start.inc This synchronization is unnecessary as well according to logics of the test. Notice, that there is a difference with `stop slave' case in that Slave_IO_Running value is uncertain by return from `start slave', Slave_SQL_Running is YES. The uncertainly is due to the fact that Slave_IO_Running is three-value set. Returning ack to the client happens when IO thread has started but not yet connected to the master side. And only upon connnecting Slave_IO_Running gets YES. > connection master; > --replace_result $SLAVE_MYPORT SLAVE_PORT > eval change master to master_host='127.0.0.1',master_user='root', > master_password='',master_port=$SLAVE_MYPORT; > start slave; > -sleep 5; > +--source include/wait_for_slave_to_start.inc ok. > flush logs; > sleep 5; what shall we do with this sleep? Could you investigate that please? > --replace_result $SLAVE_MYPORT SLAVE_PORT > ---replace_column 1 # 8 # 9 # 23 # 33 # > -show slave status; > +--replace_column 1 # 8 # 9 # 16 # 23 # 33 # 34 # 35 # > +--query_vertical show slave status > cheers, Andrei