List:Commits« Previous MessageNext Message »
From:Jonas Oreland Date:November 5 2008 11:57am
Subject:bzr commit into mysql-5.1 branch (jonas:3039)
View as plain text  
#At file:///home/jonas/src/telco-6.4/

 3039 Jonas Oreland	2008-11-05
      ndb - fix bugs in dict-master-takeover
        1) init signal->theData to NodeFailRep before calling send_nf_complete_rep
(yuck)
        2) remove special case making bug show up only in >2 node
modified:
  storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp

=== modified file 'storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp'
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2008-10-30 11:03:37 +0000
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2008-11-05 10:56:57 +0000
@@ -4145,8 +4145,6 @@ void Dbdict::send_nf_complete_rep(Signal
       nfCompRep->failedNodeId = nodePtr.i;
       sendSignal(DBDIH_REF, GSN_NF_COMPLETEREP, signal, 
 		 NFCompleteRep::SignalLength, JBB);
-      
-      //c_aliveNodes.clear(i);
     }//if
   }//for
 
@@ -4173,27 +4171,7 @@ void Dbdict::handle_master_takeover(Sign
   jam();
   NodeRecordPtr masterNodePtr;
   c_nodes.getPtr(masterNodePtr, c_masterNodeId);
-  SchemaTransPtr trans_ptr;
-  if (!c_schemaTransList.first(trans_ptr))
-  {
-    /*
-      New master has no knowledge of any pending transaction.
-    */
-    jam();
-    if (c_aliveNodes.count() == 1)
-    {
-      /*
-	This is the only node, we are done
-       */
-      jam();
-      NodeFailRep * const nodeFailRep = (NodeFailRep *)&signal->theData[0];
-      *nodeFailRep = masterNodePtr.p->nodeFailRep;
-      masterNodePtr.p->nodeState = NodeRecord::NDB_NODE_ALIVE;
-      send_nf_complete_rep(signal);
-      return;
-    }
-  }
-
+  
   masterNodePtr.p->m_nodes = c_aliveNodes;
   NodeReceiverGroup rg(DBDICT, masterNodePtr.p->m_nodes);
   {
@@ -17479,6 +17457,8 @@ void Dbdict::check_takeover_replies(Sign
       No slave found any pending transactions, we are done
      */
     jam();
+    memcpy(signal->theData, &masterNodePtr.p->nodeFailRep, 
+           sizeof(masterNodePtr.p->nodeFailRep));
     send_nf_complete_rep(signal);
     return;
   }

Thread
bzr commit into mysql-5.1 branch (jonas:3039) Jonas Oreland5 Nov