List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:February 21 2012 12:36am
Subject:bzr push into mysql-trunk-wl3584 branch (andrei.elkin:3657 to 3658) WL#3584
View as plain text  
 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#3584Andrei Elkin21 Feb