ndb - bug#26481 - fix of bug fix 5.0 version

parent 990a505d
...@@ -457,6 +457,7 @@ void Dblqh::execCONTINUEB(Signal* signal) ...@@ -457,6 +457,7 @@ void Dblqh::execCONTINUEB(Signal* signal)
else else
{ {
jam(); jam();
cstartRecReq = 2;
StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend(); StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
conf->startingNodeId = getOwnNodeId(); conf->startingNodeId = getOwnNodeId();
sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal,
...@@ -11673,7 +11674,7 @@ void Dblqh::execGCP_SAVEREQ(Signal* signal) ...@@ -11673,7 +11674,7 @@ void Dblqh::execGCP_SAVEREQ(Signal* signal)
return; return;
} }
if(getNodeState().getNodeRestartInProgress() && cstartRecReq == ZFALSE) if(getNodeState().getNodeRestartInProgress() && cstartRecReq < 2)
{ {
GCPSaveRef * const saveRef = (GCPSaveRef*)&signal->theData[0]; GCPSaveRef * const saveRef = (GCPSaveRef*)&signal->theData[0];
saveRef->dihPtr = dihPtr; saveRef->dihPtr = dihPtr;
...@@ -13822,7 +13823,7 @@ void Dblqh::srCompletedLab(Signal* signal) ...@@ -13822,7 +13823,7 @@ void Dblqh::srCompletedLab(Signal* signal)
* NO MORE FRAGMENTS ARE WAITING FOR SYSTEM RESTART. * NO MORE FRAGMENTS ARE WAITING FOR SYSTEM RESTART.
* -------------------------------------------------------------------- */ * -------------------------------------------------------------------- */
lcpPtr.p->lcpState = LcpRecord::LCP_IDLE; lcpPtr.p->lcpState = LcpRecord::LCP_IDLE;
if (cstartRecReq == ZTRUE) { if (cstartRecReq == 1) {
jam(); jam();
/* ---------------------------------------------------------------- /* ----------------------------------------------------------------
* WE HAVE ALSO RECEIVED AN INDICATION THAT NO MORE FRAGMENTS * WE HAVE ALSO RECEIVED AN INDICATION THAT NO MORE FRAGMENTS
...@@ -13892,7 +13893,7 @@ void Dblqh::execSTART_RECREQ(Signal* signal) ...@@ -13892,7 +13893,7 @@ void Dblqh::execSTART_RECREQ(Signal* signal)
ndbrequire(req->receivingNodeId == cownNodeid); ndbrequire(req->receivingNodeId == cownNodeid);
cnewestCompletedGci = cnewestGci; cnewestCompletedGci = cnewestGci;
cstartRecReq = ZTRUE; cstartRecReq = 1;
for (logPartPtr.i = 0; logPartPtr.i < 4; logPartPtr.i++) { for (logPartPtr.i = 0; logPartPtr.i < 4; logPartPtr.i++) {
ptrAss(logPartPtr, logPartRecord); ptrAss(logPartPtr, logPartRecord);
logPartPtr.p->logPartNewestCompletedGCI = cnewestCompletedGci; logPartPtr.p->logPartNewestCompletedGCI = cnewestCompletedGci;
...@@ -13913,6 +13914,7 @@ void Dblqh::execSTART_RECREQ(Signal* signal) ...@@ -13913,6 +13914,7 @@ void Dblqh::execSTART_RECREQ(Signal* signal)
}//if }//if
if(cstartType == NodeState::ST_INITIAL_NODE_RESTART){ if(cstartType == NodeState::ST_INITIAL_NODE_RESTART){
jam(); jam();
cstartRecReq = 2;
StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend(); StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
conf->startingNodeId = getOwnNodeId(); conf->startingNodeId = getOwnNodeId();
sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal,
...@@ -15733,6 +15735,7 @@ void Dblqh::srFourthComp(Signal* signal) ...@@ -15733,6 +15735,7 @@ void Dblqh::srFourthComp(Signal* signal)
else else
{ {
jam(); jam();
cstartRecReq = 2;
StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend(); StartRecConf * conf = (StartRecConf*)signal->getDataPtrSend();
conf->startingNodeId = getOwnNodeId(); conf->startingNodeId = getOwnNodeId();
sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal, sendSignal(cmasterDihBlockref, GSN_START_RECCONF, signal,
...@@ -16699,7 +16702,7 @@ void Dblqh::initialiseRecordsLab(Signal* signal, Uint32 data, ...@@ -16699,7 +16702,7 @@ void Dblqh::initialiseRecordsLab(Signal* signal, Uint32 data,
cCommitBlocked = false; cCommitBlocked = false;
ccurrentGcprec = RNIL; ccurrentGcprec = RNIL;
caddNodeState = ZFALSE; caddNodeState = ZFALSE;
cstartRecReq = ZFALSE; cstartRecReq = 0;
cnewestGci = (UintR)-1; cnewestGci = (UintR)-1;
cnewestCompletedGci = (UintR)-1; cnewestCompletedGci = (UintR)-1;
crestartOldestGci = 0; crestartOldestGci = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment