Bug #56007 | Blackhole slave replication: 2nd slave stops with an error for UPDATE statement | ||
---|---|---|---|
Submitted: | 16 Aug 2010 10:54 | ||
Reporter: | Serge Kozlov | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: Row Based Replication ( RBR ) | Severity: | S2 (Serious) |
Version: | 5.6.99-m5 | OS: | Any |
Assigned to: | Assigned Account | CPU Architecture: | Any |
Tags: | blackhole slave, HA_ERR_END_OF_FILE, nuts, row |
[16 Aug 2010 10:54]
Serge Kozlov
[16 Aug 2010 10:59]
Serge Kozlov
MTR test case and dump file
Attachment: bug56007.tgz (application/x-gzip, text), 1.55 KiB.
[29 Sep 2010 21:49]
Alfranio Tavares Correia Junior
Find in what follows a simpler test case to reproduce the problem: --source include/have_binlog_format_row.inc --source include/master-slave.inc --disable_warnings --sync_slave_with_master --connection slave let $bhs_binlog_file= query_get_value(SHOW MASTER STATUS, File, 1); --connect(slave3,127.0.0.1,root,,test,$SLAVE_MYPORT1,) --connection slave3 STOP SLAVE; RESET SLAVE; --replace_result $SLAVE_MYPORT SLAVE_MYPORT $bhs_binlog_file BHS_BINLOG_FILE --eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SLAVE_MYPORT, master_user='root', master_log_file = '$bhs_binlog_file'; START SLAVE; --connection master CREATE TABLE t1 (c_01 INT UNSIGNED, c_02 TEXT); INSERT INTO t1 VALUES (1, 'k'); UPDATE t1 SET c_02 = 'G', c_01= 3 WHERE c_01 = 1; --sync_slave_with_master --connection slave --save_master_pos --connection slave3 --sync_with_master exit;
[29 Sep 2010 22:01]
Alfranio Tavares Correia Junior
To reproduce the problem with the test case provided at [29 Sep 23:49] Alfranio Correia, you still need both rpl_row_bhs_bug56007-slave.opt and rpl_row_bhs_bug56007.cnf provided at [16 Aug 12:59] Serge Kozlov. The configuration files build the following structure: master (myisam) --> slave (blackhole, log-slave-updates) --> slave(myisam) After running the test case, the second slave stops because the row to be updated is not found. This happens because there is the following entry in the first slave's binary log ### UPDATE test.t1 ### WHERE ### @1=1 ### @2='G' ### SET ### @1=3 ### @2='G' While the master which has the correct entry, there is ### UPDATE test.t1 ### WHERE ### @1=1 ### @2='K' ### SET ### @1=3 ### @2='G' Clearly, the second slave fails because there is no row (1,'G').
[14 Jul 2016 13:17]
Sveta Smirnova
This bug fixed in 5.7.13