MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:March 10 2009 8:35am
Subject:Re: bzr commit into mysql-5.1-bugteam branch (aelkin:2836) Bug#40559
View as plain text  
Alfranio, hello.

> Hi Andrei,
>
> Sorry for the delay but I've been busy these days.

np. Thanks for reviewing!

>
> I have approved the patch, although, I don't agree with the assertion in
> log.cc:1636.

Therefore you might not agree with many other of them.
For the particular log.cc:163 execution point there is a choice: 
either to continue or to exit.


> The assertion should be removed from there as it is possible to have a
> "dirty file".
> The server should never crash due to this dirty file but only fail.

I would rather to exit.
A way DBUG_ASSERT exits depends on the definition of the macro.

I am not sure what it is for the production, but could be something like
you may find in the sources:

   #define assert(x) do { if(x) break; ::printf("%s %d: assert failed: %s\n", __FILE__,
__LINE__, #x); ::fflush(stdout); ::signal(SIGABRT,SIG_DFL); ::abort();
::kill(::getpid(),6); ::kill(::getpid(),9); } while (0)
#endif

that stands to me as rather `a fail' than `a crash'.

>
>
> Cheers.
>
>
> Andrei Elkin wrote:
>> Alfranio,
>>
>>   
>>> Hi Andrei,
>>>
>>> Great catch,
>>>
>>> See just one comment below.
>>>
>>> Andrei Elkin wrote:
>>>     
>>>> #At file:///home/andrei/MySQL/BZR/FIXES/5.1-bt-bug40559-check_bl_magic/
> based on revid:luis.soares@stripped
>>>>
>>>>  2836 Andrei Elkin	2009-03-06
>>>>       Bug #40559   assertion failed in check_binlog_magic 
>>>>       
>>>>       The reason of the bug is in that the test makes a trick with relay
> log files and
>>>>       did not reset fully at the end.
>>>>       
>>
>>   
>>>>       If mtr does not restart the test the new SQL thread tried to work
> with the old time
>>>>       
>>
>> it was meant    restart the server ^
>>
>>   
>>>>       session data.
>>>>       
>>>>       Fixed with deploying RESET slave at the clean-up.
>>>> modified:
>>>>   mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result
>>>>   mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test
>>>>
>>>> per-file messages:
>>>>   mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test
>>>>     adding RESET slave to force active mi and rli data struct to be
> reset.
>>>>     The slave SQL thread will deal with a fresh structures each time it
> restarts.
>>>> === modified file
> 'mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result'
>>>> ---
> a/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result	2008-11-13 19:19:00
> +0000
>>>> +++
> b/mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result	2009-03-06 18:19:29
> +0000
>>>> @@ -38,4 +38,5 @@ DROP PROCEDURE IF EXISTS p2;
>>>>  DROP FUNCTION IF EXISTS f1;
>>>>  DROP TRIGGER IF EXISTS tr1;
>>>>  stop slave sql_thread;
>>>> +reset slave;
>>>>  SET @@global.relay_log_purge= @old_relay_log_purge;
>>>>
>>>> === modified file
> 'mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test'
>>>> ---
> a/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test	2008-11-13 19:19:00 +0000
>>>> +++
> b/mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test	2009-03-06 18:19:29 +0000
>>>> @@ -52,9 +52,10 @@ DROP FUNCTION IF EXISTS f1;
>>>>  DROP TRIGGER IF EXISTS tr1;
>>>>  enable_warnings;
>>>>  
>>>> -remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
>>>> -remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
>>>>  stop slave sql_thread;
>>>> +reset slave;
>>>>  source include/wait_for_slave_sql_to_stop.inc;
>>>> +remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
>>>> +remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
>>>>   
>>>>       
>>> Why do you still need to explicitly remove these files if you are doing
>>> reset slave?
>>>     
>>
>> A good question. The answer must be in this: 
>>
>>    12.6.2.5 `RESET SLAVE' Syntax
>>    .............................
>>
>>    RESET SLAVE
>>
>>    *note `RESET SLAVE': reset-slave. makes the slave forget its
>>    replication position in the master's binary logs.  This statement is
>>    meant to be used for a clean start: It deletes the `master.info' and
>>    `relay-log.info' files, all the relay logs, 
>>
>>    and starts a new relay log.
>>    ~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> In order to be able to run ./mtr test test ... test
>> I have to keep manual removal.


cheers,

Andrei
Thread
bzr commit into mysql-5.1-bugteam branch (aelkin:2836) Bug#40559Andrei Elkin6 Mar
  • Re: bzr commit into mysql-5.1-bugteam branch (aelkin:2836) Bug#40559Alfranio Correia6 Mar
    • Re: bzr commit into mysql-5.1-bugteam branch (aelkin:2836) Bug#40559Andrei Elkin6 Mar
      • Re: bzr commit into mysql-5.1-bugteam branch (aelkin:2836) Bug#40559Alfranio Correia9 Mar
        • Re: bzr commit into mysql-5.1-bugteam branch (aelkin:2836) Bug#40559Andrei Elkin10 Mar