summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2007-07-03 08:46:41 +0200
committerunknown <jonas@perch.ndb.mysql.com>2007-07-03 08:46:41 +0200
commit2a511057fe6a069e5cd08a82eefe260da07bf1b0 (patch)
treef95849d47e5336e4ec5dc34990ddab8dc4f3cf16
parent4794cca717dbf4e309cb39522dc6ded3e1820393 (diff)
parentd55ca61738c0010878f7bcfb4f5f902b886c4a06 (diff)
downloadmariadb-git-2a511057fe6a069e5cd08a82eefe260da07bf1b0.tar.gz
Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb ndb/src/kernel/blocks/dblqh/DblqhMain.cpp: Auto merged
-rw-r--r--ndb/src/kernel/blocks/dblqh/DblqhMain.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp b/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
index 08bf2f9d3b2..9281b787008 100644
--- a/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
+++ b/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
@@ -11157,6 +11157,13 @@ void Dblqh::sendLCP_COMPLETE_REP(Signal* signal, Uint32 lcpId)
jam();
sendEMPTY_LCP_CONF(signal, true);
}
+
+ if (getNodeState().getNodeRestartInProgress())
+ {
+ jam();
+ ndbrequire(cstartRecReq == 2);
+ cstartRecReq = 3;
+ }
return;
}//Dblqh::sendCOMP_LCP_ROUND()
@@ -11721,15 +11728,27 @@ void Dblqh::execGCP_SAVEREQ(Signal* signal)
return;
}
- ccurrentGcprec = 0;
- gcpPtr.i = ccurrentGcprec;
- ptrCheckGuard(gcpPtr, cgcprecFileSize, gcpRecord);
-
cnewestCompletedGci = gci;
if (gci > cnewestGci) {
jam();
cnewestGci = gci;
}//if
+
+ if(getNodeState().getNodeRestartInProgress() && cstartRecReq < 3)
+ {
+ GCPSaveRef * const saveRef = (GCPSaveRef*)&signal->theData[0];
+ saveRef->dihPtr = dihPtr;
+ saveRef->nodeId = getOwnNodeId();
+ saveRef->gci = gci;
+ saveRef->errorCode = GCPSaveRef::NodeRestartInProgress;
+ sendSignal(dihBlockRef, GSN_GCP_SAVEREF, signal,
+ GCPSaveRef::SignalLength, JBB);
+ return;
+ }
+
+ ccurrentGcprec = 0;
+ gcpPtr.i = ccurrentGcprec;
+ ptrCheckGuard(gcpPtr, cgcprecFileSize, gcpRecord);
gcpPtr.p->gcpBlockref = dihBlockRef;
gcpPtr.p->gcpUserptr = dihPtr;