diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2007-07-03 08:46:41 +0200 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2007-07-03 08:46:41 +0200 |
commit | 2a511057fe6a069e5cd08a82eefe260da07bf1b0 (patch) | |
tree | f95849d47e5336e4ec5dc34990ddab8dc4f3cf16 | |
parent | 4794cca717dbf4e309cb39522dc6ded3e1820393 (diff) | |
parent | d55ca61738c0010878f7bcfb4f5f902b886c4a06 (diff) | |
download | mariadb-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.cpp | 27 |
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; |