List:Commits« Previous MessageNext Message »
From:Magnus Blåudd Date:February 2 2011 2:52pm
Subject:bzr push into mysql-5.1-telco-7.0 branch (magnus.blaudd:4165 to 4166)
Bug#58256
View as plain text  
 4166 Magnus Blåudd	2011-02-02
      Bug#58256 Rolling upgrade to 7.1.9 fails when ALL DUMP is used: cluster failure
            - A new SYNC_REQ signal was added in 7.0.20 and 7.1.9 which is used to
              make sure all blocks in a node has been scheduled and thus processed
             the asynch commands it was sent. The false assumption was that this
             is used for test/debug only and thus no version code was needed.
           - To fix this, check the version of connected node and don't send
             SYNC_REQ if the node does not support it.

    modified:
      storage/ndb/include/ndb_version.h.in
      storage/ndb/src/mgmsrv/MgmtSrvr.cpp
 4165 Jonas Oreland	2011-02-02
      ndb - fix ndb_restore_rewrite_db 7.0 and upwards (windows)

    modified:
      mysql-test/suite/ndb/t/ndb_restore_rewrite_db.test
=== modified file 'storage/ndb/include/ndb_version.h.in'
--- a/storage/ndb/include/ndb_version.h.in	2010-12-13 15:34:50 +0000
+++ b/storage/ndb/include/ndb_version.h.in	2011-02-02 14:43:21 +0000
@@ -557,4 +557,22 @@ ndbd_fail_rep_source_node(Uint32 x)
   }
 }
 
+
+#define NDBD_SYNC_REQ_SUPPORT_70 NDB_MAKE_VERSION(7,0,20)
+#define NDBD_SYNC_REQ_SUPPORT_71 NDB_MAKE_VERSION(7,1,9)
+
+static
+inline
+int
+ndbd_sync_req_support(Uint32 x)
+{
+  const Uint32 major = (x >> 16) & 0xFF;
+  const Uint32 minor = (x >>  8) & 0xFF;
+
+  if (major == 7 && minor == 0)
+    return x >= NDBD_SYNC_REQ_SUPPORT_70;
+
+  return x >= NDBD_SYNC_REQ_SUPPORT_71;
+}
+
 #endif

=== modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.cpp'
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp	2011-01-18 09:52:49 +0000
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp	2011-02-02 14:43:21 +0000
@@ -3807,6 +3807,13 @@ MgmtSrvr::show_variables(NdbOut& out)
 void
 MgmtSrvr::make_sync_req(SignalSender& ss, Uint32 nodeId)
 {
+  const trp_node node = ss.getNodeInfo(nodeId);
+  if (!ndbd_sync_req_support(node.m_info.m_version))
+  {
+    /* The node hasn't got SYNC_REQ support */
+    return;
+  }
+
   /**
    * This subroutine is used to make a async request(error insert/dump)
    *   "more" syncronous, i.e increasing the likelyhood that

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.1-telco-7.0 branch (magnus.blaudd:4165 to 4166)Bug#58256Magnus Blåudd2 Feb