List:Commits« Previous MessageNext Message »
From:Luís Soares Date:December 11 2008 5:12pm
Subject:Re: bzr commit into mysql-6.0-rpl branch (skozlov:2747) Bug#41186
View as plain text  
Hi Serge,

   I approve the patch following your comments below. I dropped some 
comments of my own also.

Serge Kozlov wrote:
> Luís Soares пишет:
>> Hi Serge,
>>   I believe your patch is Ok, and adding the parameter to 
>> wait_for_slave_sql_error is a good one. But still I have (a) 
>> question(s) remaining (I may be missing something :) ).
>>
>>   Facts:
>>    - The test fails randomly.
>>    - We are expecting an SQL error. (with wait_for_slave_sql_error.inc)
>>    - The failure occurs at start slave. This means that the previous 
>> wait_for_slave_sql_error must have succeeded (as you pointed out that 
>> it succeeds if any SQL error happens).
>>    - When restarting the server the same duplicate key appears again 
>> (or it is still there).
>>
>>   Question:
>>    - What error was causing the wait_for_slave_sql_error to succeed? 
>> If there was any unexpected SQL error happening before, won't setting 
>> explicitly waiting for 1062 hide that?
> 
> We don't know what caused an error because usually 'testcase timeout' 
> bugs have no debug info. I think that possible reason is an another SQL 
> error that appears before 'duplicate PK' and it is correct for 
> wait_for_slave_sql_error.inc.
> Anyway waiting of exact error code is better than waiting any error and 
> it doesn't make test worse.
> Probably the bug can happen again but at least we will known place of 
> error.

I agree. This patch improves the task of seeking why the test failed 
sporadically. As such, I will approve it. Should the failure happen we 
can then open a new bug report with more precise information.

> 
>>
>>   I tried to reproduce the faulty behavior with a few runs on my 
>> machine, but was not able to.
>>
>>   If my worries above above do not make sense, then I have no further 
>> objections.
>>
>> Cheers,
>> Luís
>>
>>
>> Serge Kozlov wrote:
>>> #At file:///home/ksm/sun/repo/bug41186/mysql-6.0-rpl/ based on 
>>> revid:alfranio.correia@stripped
>>>
>>>  2747 Serge Kozlov    2008-12-08
>>>       Bug#41186: Possible reason of bug is waiting any sql error on 
>>> slave instead
>>>       exact number of error. The patch does following:
>>>       1) Add new parameter $slave_sql_errno for 
>>> wait_for_slave_sql_error.inc
>>>       2) Add waiting error 1062 (Duplicate PK) for slave SQL thread 
>>> in test case.
>>> modified:
>>>   mysql-test/include/wait_for_slave_sql_error.inc
>>>   mysql-test/suite/rpl/t/rpl_stm_mystery22.test
>>>
>>> === modified file 'mysql-test/include/wait_for_slave_sql_error.inc'
>>> --- a/mysql-test/include/wait_for_slave_sql_error.inc    2008-07-10 
>>> 16:09:39 +0000
>>> +++ b/mysql-test/include/wait_for_slave_sql_error.inc    2008-12-07 
>>> 21:20:59 +0000
>>> @@ -7,15 +7,29 @@
>>>  #
>>>  # source include/wait_for_slave_sql_error.inc;
>>>  #
>>> -# Parameters to this macro are $slave_timeout and
>>> -# $slave_keep_connection. See wait_for_slave_param.inc for
>>> -# descriptions.
>>> +# Parameters:
>>> +#
>>> +# $slave_sql_errno
>>> +#   Number of expected SQL error. If it skipped then any error
>>> +#   will pass.
>>> +# +# $slave_timeout and
>>> +#   See wait_for_slave_param.inc for descriptions.
>>> +# +# $slave_keep_connection. +#   See wait_for_slave_param.inc for 
>>> descriptions.
>>>  
>>>  let $old_slave_param_comparison= $slave_param_comparison;
>>>  
>>>  let $slave_param= Last_SQL_Errno;
>>>  let $slave_param_comparison= !=;
>>>  let $slave_param_value= 0;
>>> +
>>> +if ($slave_sql_errno) {
>>> +  let $slave_param_comparison= =;
>>> +  let $slave_param_value= $slave_sql_errno;
>>> +}
>>> +
>>>  let $slave_error_message= Failed while waiting for slave to produce 
>>> an error in its sql thread;
>>>  source include/wait_for_slave_param.inc;
>>>  let $slave_error_message= ;
>>>
>>> === modified file 'mysql-test/suite/rpl/t/rpl_stm_mystery22.test'
>>> --- a/mysql-test/suite/rpl/t/rpl_stm_mystery22.test    2008-06-22 
>>> 20:05:19 +0000
>>> +++ b/mysql-test/suite/rpl/t/rpl_stm_mystery22.test    2008-12-07 
>>> 21:20:59 +0000
>>> @@ -28,6 +28,7 @@ insert into t1 values(NULL,'new');
>>>  save_master_pos;
>>>  connection slave;
>>>  # wait until the slave tries to run the query, fails and aborts 
>>> slave thread
>>> +let $slave_sql_errno= 1062;
>>>  source include/wait_for_slave_sql_error.inc;
>>>  select * from t1 order by n;
>>>  delete from t1 where n = 2;
>>>
>>>
>>
> 
> 

Thread
bzr commit into mysql-6.0-rpl branch (skozlov:2747) Bug#41186Serge Kozlov7 Dec
  • Re: bzr commit into mysql-6.0-rpl branch (skozlov:2747) Bug#41186Luís Soares9 Dec
    • Re: bzr commit into mysql-6.0-rpl branch (skozlov:2747) Bug#41186Serge Kozlov11 Dec
      • Re: bzr commit into mysql-6.0-rpl branch (skozlov:2747) Bug#41186Luís Soares11 Dec