| 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: | |
| 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 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.

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