List:Commits« Previous MessageNext Message »
From:Serge Kozlov Date:August 25 2008 3:57pm
Subject:Re: bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442
View as plain text  
Andrei Elkin wrote:
> 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;
> 

Am I correct that we don't need to wait stop and because in fact next 
statement is start slave and we have issues here?

> 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?

The good question ... seems here we wait flush logs



> 
> 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
> 


-- 
Serge Kozlov, QA Developer
MySQL AB, Moscow, Russia, www.mysql.com
Office:

Are you MySQL certified?  www.mysql.com/certification
Thread
bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442Serge Kozlov25 Aug
  • Re: bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442Andrei Elkin25 Aug
    • Re: bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442Serge Kozlov25 Aug
      • Re: bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442Andrei Elkin25 Aug
        • Re: bzr commit into mysql-5.0 branch (skozlov:2613) Bug#22442Serge Kozlov25 Aug