Bug #12691 Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER
Submitted: 19 Aug 2005 21:21 Modified: 31 Jan 2008 13:32
Reporter: Dean Ellis Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version:5.0/4.1/4.0 OS:Linux (Linux)
Assigned to: Mats Kindahl CPU Architecture:Any
Triage: D2 (Serious)

[19 Aug 2005 21:21] Dean Ellis
Description:
Exec_Master_Log_Pos reports inaccurate values when using replicate-wild-ignore-table=mysql.%, a transaction, SQL_SLAVE_SKIP_COUNTER.

How to repeat:
configure slave:
[mysqld]
replicate-wild-ignore-table=mysql.%

master:
CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;

slave:
DROP TABLE t1;

master:

BEGIN;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
COMMIT;

slave:
SHOW SLAVE STATUS\G

Slave SQL thread halted because t1 does not exist

slave:
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
SHOW SLAVE STATUS;

Exec_Master_Log_Pos should report inaccurate position for master binlog.

Removing replicate-wild-ignore-table option appears to resolve problem.

Suggested fix:
n/a
[19 Aug 2005 21:21] Dean Ellis
Verified on 5.0; should be verified on 4.0 and 4.1 however, so I am leaving it Open
[23 Oct 2005 4:06] Alexander Pachev
I have tested BK-4.1.16 and could not verify it with the following test case:

 Test case for BUG #12691
--source include/master-slave.inc

connection master;
CREATE TABLE t1 ( a INT ) ENGINE=InnoDB;
commit;
sync_slave_with_master;

connection slave;
DROP TABLE t1;

connection master;
BEGIN;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
COMMIT;

sleep 3;

connection slave;
--vertical_results
SHOW SLAVE STATUS;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
sleep 3;
SHOW SLAVE STATUS;

#cleanup

connection master;
drop table if exists t1;
commit;

connection slave;
drop table if exists t1;
commit;

Exec_master_pos advances 40 bytes after SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE; and 3 seconds of sleep just like you would expect it. I will now try this again in 5.0.
[23 Oct 2005 4:17] Alexander Pachev
Tried it on 5.0. Again Exec_master_pos advanced by 68 bytes just like it was supposed to. Note that Read_master_pos does not advance because it does not  have to. SQL_SLAVE_SKIP_COUNTER tells the SQL thread to skip the next N events. However, the I/O thread will keep reading events regardless and will move at its own pace.
[28 Sep 2006 17:24] Andrei Elkin
I claim this is not a bug, but a feature requiring explanation in docs.

Exec_master_log_pos is not getting corrupted although the couter indeed behaves sometimes non-monotonically (that is contra-intuitive). That happens exclusively in SBR when master executes a multi-statement transaction which sequence of queries causes slave to stop e.g because of replication rules.
In the current setup slave stops for the first time having Exec_master_log_pos
mapping to CREATE TABLE t1, whereas Last_Error shows the first offending statement of the transaction. The first sequence of
'set SQL_SLAVE_SKIP_COUNTER = 1; start slave;  show slave status' shifted "the slider" to the BEGIN, which Exec counter still increases. But in all sequent iterations the reporter must have observed values less than the pre-transactional statement. And those numbers, associated with INSERTs, are just offsets from the BEGIN statement. One can check this with
mysqlbinlog binlog, the numbers are values at end_log_pos.
After 4 interations with SQL_SLAVE_SKIP_COUNTER = 4 the whole transaction is skipped, and the Exec_master_log_pos increases from the value corresponding to the pre-transactional query by the size of the whole transaction event.
[2 Oct 2006 7:43] Andrei Elkin
It's not a bug. I left lines most probably explaining what made our customer wondering.
[12 Oct 2006 15:58] Lars Thalmann
See also BUG#23171
[20 Feb 2007 18:00] Jonathan Miller
Per Lars request I have added a test case file to the bug. This show issues with skip and triggers when using MyISAM.

/Jeb
[20 Feb 2007 18:01] Jonathan Miller
Test file

Attachment: rpl_test.test (application/octet-stream, text), 4.19 KiB.

[20 Feb 2007 18:01] Jonathan Miller
innodb reject file

Attachment: rpl_test_innodb.reject (application/octet-stream, text), 7.57 KiB.

[20 Feb 2007 18:02] Jonathan Miller
MyISAM Reject

Attachment: rpl_test_myisam.reject (application/octet-stream, text), 7.36 KiB.

[13 Apr 2007 18:41] Jonathan Miller
Hi,

I am not sure that this is patched. replicate-wild-ignore-table=mysql.% does not seem to change the results anymore, but by adding extra skip counters, it seems that you can still get an Exec_master_log_pos that is not correct.

The first time the slave bombs out the Exec_master_log_pos = 299
After the first SQL_SLAVE_SKIP_COUNTER=1 the Exec_master_log_pos = 367
Then if you set SQL_SLAVE_SKIP_COUNTER=2 the Exec_master_log_pos = 73, this seems to be a bug to me.
Then if you continue and set SQL_SLAVE_SKIP_COUNTER=3, the the Exec_master_log_pos = 613 and the slave continues to run.

+ stop slave;
+ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+ reset master;
+ reset slave;
+ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+ start slave;
+ DROP TABLE IF EXISTS test.t1;
+
+ **** Create Table for Test 1 ****
+
+ CREATE TABLE t1 ( a INT ) ENGINE=innodb;
+ commit;
+
+ **** Drop Table on slave for Test 1 ****
+
+ DROP TABLE t1;
+
+ **** Insert data on master for Test 1 ****
+
+ BEGIN;
+ INSERT INTO t1 VALUES (1);
+ INSERT INTO t1 VALUES (2);
+ INSERT INTO t1 VALUES (3);
+ COMMIT;
+
+ **** Connect to slave and show status Test 1 ****
+
+ SHOW SLAVE STATUS;
+ Slave_IO_State        #
+ Master_Host   127.0.0.1
+ Master_User   root
+ Master_Port   MASTER_MYPORT
+ Connect_Retry 1
+ Master_Log_File       master-bin.000001
+ Read_Master_Log_Pos   613
+ Relay_Log_File        slave-relay-bin.000003
+ Relay_Log_Pos 445
+ Relay_Master_Log_File master-bin.000001
+ Slave_IO_Running      Yes
+ Slave_SQL_Running     No
+ Replicate_Do_DB
+ Replicate_Ignore_DB
+ Replicate_Do_Table
+ Replicate_Ignore_Table
+ Replicate_Wild_Do_Table
+ Replicate_Wild_Ignore_Table   mysql.%
+ Last_Errno    1146
+ Last_Error    Error 'Table 'test.t1' doesn't exist' on opening table `test`.`t1`
+ Skip_Counter  0
+ Exec_Master_Log_Pos   299
+ 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 #
+ Master_SSL_Verify_Server_Cert No
+
+ **** Stop slave and set skip for Test 1 ****
+
+ STOP SLAVE;
+ SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
+
+ **** Start slave and show status for Test 1 ****
+
+ START SLAVE;
+ SHOW SLAVE STATUS;
+ Slave_IO_State        #
+ Master_Host   127.0.0.1
+ Master_User   root
+ Master_Port   MASTER_MYPORT
+ Connect_Retry 1
+ Master_Log_File       master-bin.000001
+ Read_Master_Log_Pos   613
+ Relay_Log_File        slave-relay-bin.000003
+ Relay_Log_Pos 513
+ Relay_Master_Log_File master-bin.000001
+ Slave_IO_Running      Yes
+ Slave_SQL_Running     No
+ Replicate_Do_DB
+ Replicate_Ignore_DB
+ Replicate_Do_Table
+ Replicate_Ignore_Table
+ Replicate_Wild_Do_Table
+ Replicate_Wild_Ignore_Table   mysql.%
+ Last_Errno    1146
+ Last_Error    Error 'Table 'test.t1' doesn't exist' on opening table `test`.`t1`
+ Skip_Counter  0
+ Exec_Master_Log_Pos   367
+ 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 #
+ Master_SSL_Verify_Server_Cert No
+
+ **** Stop slave and set skip for Test 1 ****
+
+ STOP SLAVE;
+ SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+
+ **** Start slave and show status for Test 1 ****
+
+ START SLAVE;
+ SHOW SLAVE STATUS;
+ Slave_IO_State        #
+ Master_Host   127.0.0.1
+ Master_User   root
+ Master_Port   MASTER_MYPORT
+ Connect_Retry 1
+ Master_Log_File       master-bin.000001
+ Read_Master_Log_Pos   613
+ Relay_Log_File        slave-relay-bin.000003
+ Relay_Log_Pos 586
+ Relay_Master_Log_File master-bin.000001
+ Slave_IO_Running      Yes
+ Slave_SQL_Running     No
+ Replicate_Do_DB
+ Replicate_Ignore_DB
+ Replicate_Do_Table
+ Replicate_Ignore_Table
+ Replicate_Wild_Do_Table
+ Replicate_Wild_Ignore_Table   mysql.%
+ Last_Errno    1146
+ Last_Error    Error 'Table 'test.t1' doesn't exist' on opening table `test`.`t1`
+ Skip_Counter  0
+ Exec_Master_Log_Pos   73
+ 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 #
+ Master_SSL_Verify_Server_Cert No
+
+ **** Stop slave and set skip for Test 1 ****
+
+ STOP SLAVE;
+ SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
+
+ **** Start slave and show status for Test 1 ****
+
+ START SLAVE;
+ SHOW SLAVE STATUS;
+ Slave_IO_State        #
+ Master_Host   127.0.0.1
+ Master_User   root
+ Master_Port   MASTER_MYPORT
+ Connect_Retry 1
+ Master_Log_File       master-bin.000001
+ Read_Master_Log_Pos   613
+ Relay_Log_File        slave-relay-bin.000006
+ Relay_Log_Pos 252
+ 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   mysql.%
+ Last_Errno    0
+ Last_Error
+ Skip_Counter  0
+ Exec_Master_Log_Pos   613
+ 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 #
+ Master_SSL_Verify_Server_Cert No
+
+ **** cleanup for Test 1 ****
+
+ drop table if exists t1;
+ commit;
+ drop table if exists t1;
+ commit;
+ RESET MASTER;
+ STOP SLAVE;
+ RESET SLAVE;
+ START SLAVE;

connection master;
--disable_warnings
DROP TABLE IF EXISTS test.t1;
--enable_warnings

--echo
--echo **** Create Table for Test 1 ****
--echo
eval CREATE TABLE t1 ( a INT ) ENGINE=$engine_type;
commit;
sync_slave_with_master;

--echo
--echo **** Drop Table on slave for Test 1 ****
--echo
connection slave;
DROP TABLE t1;

--echo
--echo **** Insert data on master for Test 1 ****
--echo
connection master;
BEGIN;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
COMMIT;

sleep 3;

--echo
--echo **** Connect to slave and show status Test 1 ****
--echo
connection slave;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 23 # 33 #
--vertical_results
SHOW SLAVE STATUS;

--echo
--echo **** Stop slave and set skip for Test 1 ****
--echo
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
--echo
--echo **** Start slave and show status for Test 1 ****
--echo
START SLAVE;
sleep 3;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 23 # 33 #
SHOW SLAVE STATUS;

--echo
--echo **** Stop slave and set skip for Test 1 ****
--echo
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
--echo
--echo **** Start slave and show status for Test 1 ****
--echo
START SLAVE;
sleep 3;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 23 # 33 #
SHOW SLAVE STATUS;

--echo
--echo **** Stop slave and set skip for Test 1 ****
--echo
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
--echo
--echo **** Start slave and show status for Test 1 ****
--echo
START SLAVE;
sleep 3;
--replace_result $MASTER_MYPORT MASTER_MYPORT
--replace_column 1 # 23 # 33 #
SHOW SLAVE STATUS;

#cleanup
--echo
--echo **** cleanup for Test 1 ****
--echo
--disable_warnings
connection master;
drop table if exists t1;
commit;

connection slave;
drop table if exists t1;
commit;
--enable_warnings
[13 Apr 2007 18:50] Jonathan Miller
Hi,

Just my thoughts.

But it seems like the following makes one full groups of transactions:
BEGIN;
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
INSERT INTO t1 VALUES (3);
COMMIT;

Seems like when SQL_SLAVE_SKIP_COUNTER=1 it should skip the entire set of statements that belong to the transaction.
[13 Apr 2007 21:39] Jonathan Miller
Updated test file for safe keeping

Attachment: rpl_skip_events_innodb.test (application/octet-stream, text), 602 bytes.

[13 Apr 2007 21:39] Jonathan Miller
Updated test file for safe keeping

Attachment: rpl_skip_events_myisam.test (application/octet-stream, text), 568 bytes.

[13 Apr 2007 21:40] Jonathan Miller
option file

Attachment: rpl_skip_events_innodb-master.opt (application/octet-stream, text), 10 bytes.

[13 Apr 2007 21:40] Jonathan Miller
option file

Attachment: rpl_skip_events_innodb-slave.opt (application/octet-stream, text), 48 bytes.

[13 Apr 2007 21:41] Jonathan Miller
Updated test file for safe keeping

Attachment: rpl_skip_events.test (application/octet-stream, text), 5.07 KiB.

[13 Apr 2007 21:41] Jonathan Miller
reject file

Attachment: rpl_skip_events_innodb.reject (application/octet-stream, text), 9.62 KiB.

[23 May 2007 12:32] Mats Kindahl
BUG#28618 was created to track the status of the 5.1 version of this bug. This bug is strictly focused on pre-5.1 since the code is significantly different.
[22 Oct 2007 14:27] Lars Thalmann
This is fixed in 5.1 and it won't be fixed in 5.0 or below.
[23 Oct 2007 20:12] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36200

ChangeSet@1.2544, 2007-10-23 22:10:23+02:00, mats@kindahl-laptop.dnsalias.net +1 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[25 Oct 2007 12:48] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36342

ChangeSet@1.2544, 2007-10-25 14:48:31+02:00, mats@kindahl-laptop.dnsalias.net +3 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[25 Oct 2007 12:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36343

ChangeSet@1.2544, 2007-10-25 14:50:07+02:00, mats@kindahl-laptop.dnsalias.net +4 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[26 Oct 2007 7:43] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36408

ChangeSet@1.2544, 2007-10-26 09:41:59+02:00, mats@kindahl-laptop.dnsalias.net +4 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[26 Oct 2007 7:59] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36409

ChangeSet@1.2544, 2007-10-26 09:09:42+02:00, mats@kindahl-laptop.dnsalias.net +4 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[26 Oct 2007 8:58] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36415

ChangeSet@1.2544, 2007-10-26 09:04:24+02:00, mats@kindahl-laptop.dnsalias.net +4 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[26 Oct 2007 16:53] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36447

ChangeSet@1.2544, 2007-10-26 18:52:58+02:00, mats@kindahl-laptop.dnsalias.net +4 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
    
  Adding code to keep skipping events while inside a transaction. Execution
  will start just after the transaction has been skipped.
[30 Oct 2007 11:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36637

ChangeSet@1.2603, 2007-10-30 13:49:42+02:00, aelkin@koti.dsl.inet.fi +6 -0
  Manual merge 5.0-rpl -> 5.1-rpl.
  
  involved bug#12691, bug#27571
[25 Nov 2007 18:26] Serge Kozlov
The bug still exists for LOAD DATA INFILE statement because it contains 2 events.

-- source include/master-slave.inc
-- connection master

CREATE TABLE t1(b CHAR(10));

--echo **** On Slave ****
-- sync_slave_with_master
STOP SLAVE;
source include/wait_for_slave_to_stop.inc;

-- connection master

--exec cp ./suite/bugs/data/rpl_bug12691.dat $MYSQLTEST_VARDIR/tmp/
LOAD DATA INFILE '../tmp/rpl_bug12691.dat' INTO TABLE t1 FIELDS TERMINATED BY '|' ;
--remove_file $MYSQLTEST_VARDIR/tmp/rpl_bug12691.dat

SELECT COUNT(*) FROM t1;

--replace_column 2 # 5 #
--replace_regex /Server ver: .+/Server ver: #/ /table_id: [0-9]+/table_id: #/ /COMMIT.+xid=[0-9]+.+/#/ /file_id=[0-9]+/file_id=#/ /block_len=[0-9]+/block_len=#/
SHOW BINLOG EVENTS;

-- save_master_pos

-- connection slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE;
source include/wait_for_slave_to_start.inc;
-- sync_with_master

SELECT COUNT(*) FROM t1;

Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000001	#	Format_desc	1	#	Server ver: #
master-bin.000001	#	Query	1	#	use `test`; CREATE TABLE t1(b CHAR(10))
master-bin.000001	#	Begin_load_query	1	#	;file_id=#;block_len=#
master-bin.000001	#	Execute_load_query	1	#	use `test`; LOAD DATA INFILE '../tmp/rpl_bug12691.dat' INTO TABLE t1 FIELDS TERMINATED BY '|' ;file_id=#

Slave.err:

071125 21:10:00 [ERROR] Slave: Error 'Can't get stat of '/home/user/builds/rpl50/mysql-test/var/tmp/SQL_LOAD-2-1-1.data' (Errcode: 2)' on query. Default database: 'test'. Query: 'LOAD DATA INFILE '../tmp/SQL_LOAD-2-1-1.data' INTO TABLE t1 FIELDS TERMINATED BY '|'', Error_code: 13
[27 Nov 2007 10:48] Bugs System
Pushed into 5.0.54
[27 Nov 2007 10:51] Bugs System
Pushed into 5.1.23-rc
[27 Nov 2007 10:53] Bugs System
Pushed into 6.0.4-alpha
[30 Dec 2007 13:43] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/40464

ChangeSet@1.2557, 2007-12-20 15:24:27+01:00, mats@capulet.kindahl.net +3 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Complementary patch since LOAD DATA INFILE was not covered in
  the previous patch.
  
  This patch adds a check so that the slave skip counter is not
  decreased to zero if seeing a BEGIN_LOAD_QUERY_EVENT,
  APPEND_BLOCK_EVENT, or CREATE_FILE_EVENT since these cannot
  end a group. The group is terminated by an EXECUTE_LOAD_QUERY_
  EVENT or DELETE_FILE_EVENT.
[30 Dec 2007 13:43] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/40465

ChangeSet@1.2557, 2007-12-20 16:07:54+01:00, mats@capulet.kindahl.net +3 -0
  BUG#12691 (Exec_master_log_pos corrupted with SQL_SLAVE_SKIP_COUNTER):
  
  Complementary patch since LOAD DATA INFILE was not covered in
  the previous patch.
  
  This patch adds a check so that the slave skip counter is not
  decreased to zero if seeing a BEGIN_LOAD_QUERY_EVENT,
  APPEND_BLOCK_EVENT, or CREATE_FILE_EVENT since these cannot
  end a group. The group is terminated by an EXECUTE_LOAD_QUERY_
  EVENT or DELETE_FILE_EVENT.
[23 Jan 2008 18:30] Andrei Elkin
There is Bug #31190, a possible dup, that could not be reproduced. I think that's because of this bug fixes were pushed.
[23 Jan 2008 18:30] Andrei Elkin
There is Bug #31190, a possible dup, that could not be reproduced. I think that's because of this bug fixes have been pushed.
[5 Feb 2008 12:45] Bugs System
Pushed into 5.0.56
[5 Feb 2008 13:03] Bugs System
Pushed into 5.1.24-rc
[5 Feb 2008 13:07] Bugs System
Pushed into 6.0.5-alpha
[15 Feb 2008 13:40] Bugs System
Pushed into 5.1.24-rc
[15 Feb 2008 13:42] Bugs System
Pushed into 6.0.5-alpha