Bug #40001 Replication failure on RBR + no PK + field with index + field with no index
Submitted: 13 Oct 2008 14:04 Modified: 16 Oct 2008 8:12
Reporter: Philip Stoev Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Row Based Replication ( RBR ) Severity:S2 (Serious)
Version:6.0-rpl OS:Any
Assigned to: Assigned Account CPU Architecture:Any

[13 Oct 2008 14:04] Philip Stoev
Description:
When issuing UPDATEs on a table with no primary key but with both indexed and non-indexed fields, row-based replication breaks fairly easily:

081013 17:02:59 [ERROR] Slave SQL: Could not execute Update_rows event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log master-bin.000001, end_log_pos 832, Error_code: 1032
081013 17:02:59 [ERROR] Slave: Can't find record in 't1' Error_code: 1032
081013 17:02:59 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'master-bin.000001' position 682

How to repeat:
--source include/master-slave.inc

SET binlog_format = 'row';

CREATE TABLE t1 (
        `int_key` int,
        `int` int,
        key (`int_key` )
) ENGINE=myisam;

INSERT IGNORE INTO t1 VALUES (NULL, '9');
UPDATE t1 SET `int_key` = 5 WHERE `int` = 9;
UPDATE t1 SET `int` = 0 WHERE `int_key` < 9;

--save_master_pos
--connection slave
--sync_with_master
[13 Oct 2008 20:51] Sveta Smirnova
Thank you for the report.

Verified as described.
[16 Oct 2008 8:12] Mats Kindahl
Unable to reproduce failure for 5.1-5.1.29-rc.
[16 Oct 2008 13:57] 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/56381

2772 Mats Kindahl	2008-10-16
      BUG#40001: Replication failure on RBR + no PK + field with index +
                 field with no index 
      
      Adding test case for bug to avoid regressions.