Hi Andrei,
Sorry for the delay but I've been busy these days.
I have approved the patch, although, I don't agree with the assertion in
log.cc:1636.
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.
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
>