3658 Andrei Elkin 2012-02-21
wl#3584 GTID
relaxing conditions for HB info validation.
Master can skip transactions that slave already got and this
fact is never reported so the vanilla GTID-less logics
fail because implicitly MI.pos should include the size of the
skipped transactions.
Until HB does not carry the skipped size validation only
condiders monotonicity, i.e
HB.pos >= MI.pos when gtid_mode is ON.
modified:
sql/rpl_slave.cc
3657 Luis Soares 2012-02-18 [merge]
Merging mysql-trunk --> mysql-trunk-wl3584.
Manually resolved conflicts
===========================
Text conflict in sql/sql_class.cc
added:
mysql-test/suite/binlog/r/binlog_server_start_options.result
mysql-test/suite/binlog/t/binlog_server_start_options.test
mysql-test/suite/innodb/r/innodb-blob.result
mysql-test/suite/innodb/t/innodb-blob.test
sql/md5.cc
sql/sha1.cc
modified:
include/my_md5.h
include/sha1.h
libmysql/CMakeLists.txt
mysql-test/r/type_newdecimal.result
mysql-test/r/type_temporal_fractional.result
mysql-test/t/type_newdecimal.test
mysql-test/t/type_temporal_fractional.test
mysys/CMakeLists.txt
mysys/md5.c
mysys/mf_format.c
mysys/sha1.c
sql/CMakeLists.txt
sql/handler.cc
sql/item.h
sql/item_func.cc
sql/item_func.h
sql/item_strfunc.cc
sql/mysqld.cc
sql/opt_range.cc
sql/password.c
sql/rpl_info_factory.cc
sql/sql_class.cc
sql/sql_plugin.cc
sql/sys_vars.cc
sql/table.cc
storage/innobase/btr/btr0btr.cc
storage/innobase/btr/btr0cur.cc
storage/innobase/buf/buf0dblwr.cc
storage/innobase/fsp/fsp0fsp.cc
storage/innobase/ibuf/ibuf0ibuf.cc
storage/innobase/include/btr0btr.h
storage/innobase/include/btr0cur.h
storage/innobase/include/btr0cur.ic
storage/innobase/include/fsp0fsp.h
storage/innobase/include/mtr0mtr.h
storage/innobase/include/mtr0mtr.ic
storage/innobase/include/trx0rec.ic
storage/innobase/include/trx0undo.h
storage/innobase/include/univ.i
storage/innobase/mtr/mtr0mtr.cc
storage/innobase/row/row0ins.cc
storage/innobase/row/row0upd.cc
storage/innobase/srv/srv0start.cc
storage/innobase/trx/trx0rec.cc
storage/innobase/trx/trx0trx.cc
storage/innobase/trx/trx0undo.cc
=== modified file 'sql/rpl_slave.cc'
--- a/sql/rpl_slave.cc 2012-02-17 19:46:49 +0000
+++ b/sql/rpl_slave.cc 2012-02-21 00:34:41 +0000
@@ -5955,7 +5955,13 @@ static int queue_event(Master_info* mi,c
if ((memcmp(const_cast<char *>(mi->get_master_log_name()),
hb.get_log_ident(), hb.get_ident_len())
&& mi->get_master_log_name() != NULL)
- || mi->get_master_log_pos() != hb.log_pos)
+ || ((mi->get_master_log_pos() != hb.log_pos && gtid_mode == 0) ||
+ /*
+ When Gtid mode is on only monotocity can be claimed.
+ Todo: enhance HB event with the skipped events size
+ and to convert HB.pos == MI.pos to HB.pos - HB.skip_size == MI.pos
+ */
+ (mi->get_master_log_pos() > hb.log_pos)))
{
/* missed events of heartbeat from the past */
error= ER_SLAVE_HEARTBEAT_FAILURE;
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk-wl3584 branch (andrei.elkin:3657 to 3658) WL#3584 | Andrei Elkin | 21 Feb |