|
|||||||||||
|
bk commit into 5.1 tree (jonas:1.2584) BUG#31257
From: <jonas(at)mysql.com>
Date: Sat Sep 29 2007 - 05:29:22 EDT
ChangeSet@1.2584, 2007-09-29 11:29:17+02:00, jonas@perch.ndb.mysql.com +2 -0
ndb - bug#31257
storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp@1.31, 2007-09-29 11:29:15+02:00, jonas@perch.ndb.mysql.com +1 -0 add new variable storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp@1.120, 2007-09-29 11:29:15+02:00, jonas@perch.ndb.mysql.com +34 -1 remove ongoing LCP from node if it did nto complete first # This is a BitKeeper patch. What follows are the unified diffs for the
MasterLCPConf::State lcpStateAtTakeOver; + Uint32 m_remove_node_from_table_lcp_id;
};
/**********************************************************************/
--- 1.119/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2007-09-29 11:29:22 +02:00
+++ 1.120/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp 2007-09-29 11:29:22 +02:00
@@ -5060,6 +5060,18 @@
return;
}
+ /**
+ * If node has node complete LCP
+ * we need to remove it as undo might not be complete
+ * bug#31257
+ */
+ failedNodePtr.p->m_remove_node_from_table_lcp_id = RNIL;
+ if (c_lcpState.m_LCP_COMPLETE_REP_Counter_LQH.isWaitingFor(failedNodePtr.i))
+ {
+ jam();
+ failedNodePtr.p->m_remove_node_from_table_lcp_id = SYSFILE->latestLCP_ID;
+ }
+
jam();
return;
+ NodeRecordPtr nodePtr; + nodePtr.i = nodeId; + ptrCheckGuard(nodePtr, MAX_NDB_NODES, nodeRecord); + const Uint32 lcpId = nodePtr.p->m_remove_node_from_table_lcp_id; + /**
@@ -5743,6 +5759,23 @@
noOfRemovedLcpReplicas ++;
replicaPtr.p->lcpOngoingFlag = false;
}
+
+ if (lcpId != RNIL)
+ {
+ jam();
+ Uint32 lcpNo = prevLcpNo(replicaPtr.p->nextLcp);
+ if (replicaPtr.p->lcpStatus[lcpNo] == ZVALID &&
+ replicaPtr.p->lcpId[lcpNo] == SYSFILE->latestLCP_ID)
+ {
+ jam();
+ replicaPtr.p->lcpStatus[lcpNo] = ZINVALID;
+ replicaPtr.p->lcpId[lcpNo] = 0;
+ replicaPtr.p->nextLcp = lcpNo;
+ ndbout_c("REMOVING lcp: %u from table: %u frag: %u node: %u",
+ SYSFILE->latestLCP_ID,
+ tabPtr.i, fragNo, nodeId);
+ }
+ }
}
}
if (!found)
-- MySQL Code Commits Mailing List For list archives: http://lists.mysql.com/commits To unsubscribe: http://lists.mysql.com/commits?unsub=lists@pantek.comReceived on Sat Sep 29 05:29:39 2007 This archive was generated by hypermail 2.1.8 : Sun Oct 07 2007 - 09:45:12 EDT |
||||||||||
|
|||||||||||