Commit d645496e authored by jonas@perch.ndb.mysql.com's avatar jonas@perch.ndb.mysql.com

Merge joreland@bk-internal.mysql.com:/home/bk/mysql-5.0-ndb

into  perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
parents 8b964c2b ca05bbf9
...@@ -1629,6 +1629,8 @@ private: ...@@ -1629,6 +1629,8 @@ private:
// NR // NR
Uint32 c_dictLockSlavePtrI_nodeRestart; // userPtr for NR Uint32 c_dictLockSlavePtrI_nodeRestart; // userPtr for NR
void recvDictLockConf_nodeRestart(Signal* signal, Uint32 data, Uint32 ret); void recvDictLockConf_nodeRestart(Signal* signal, Uint32 data, Uint32 ret);
Uint32 c_error_7181_ref;
}; };
#if (DIH_CDATA_SIZE < _SYSFILE_SIZE32) #if (DIH_CDATA_SIZE < _SYSFILE_SIZE32)
......
...@@ -4816,6 +4816,7 @@ void Dbdih::execMASTER_GCPREQ(Signal* signal) ...@@ -4816,6 +4816,7 @@ void Dbdih::execMASTER_GCPREQ(Signal* signal)
{ {
ndbout_c("execGCP_TCFINISHED in MASTER_GCPREQ"); ndbout_c("execGCP_TCFINISHED in MASTER_GCPREQ");
CLEAR_ERROR_INSERT_VALUE; CLEAR_ERROR_INSERT_VALUE;
signal->theData[0] = c_error_7181_ref;
signal->theData[1] = coldgcp; signal->theData[1] = coldgcp;
execGCP_TCFINISHED(signal); execGCP_TCFINISHED(signal);
} }
...@@ -4891,6 +4892,7 @@ void Dbdih::execMASTER_GCPREQ(Signal* signal) ...@@ -4891,6 +4892,7 @@ void Dbdih::execMASTER_GCPREQ(Signal* signal)
{ {
ndbout_c("execGCP_TCFINISHED in MASTER_GCPREQ"); ndbout_c("execGCP_TCFINISHED in MASTER_GCPREQ");
CLEAR_ERROR_INSERT_VALUE; CLEAR_ERROR_INSERT_VALUE;
signal->theData[0] = c_error_7181_ref;
signal->theData[1] = coldgcp; signal->theData[1] = coldgcp;
execGCP_TCFINISHED(signal); execGCP_TCFINISHED(signal);
} }
...@@ -7704,6 +7706,7 @@ void Dbdih::execGCP_COMMIT(Signal* signal) ...@@ -7704,6 +7706,7 @@ void Dbdih::execGCP_COMMIT(Signal* signal)
cgckptflag = false; cgckptflag = false;
emptyverificbuffer(signal, true); emptyverificbuffer(signal, true);
cgcpParticipantState = GCP_PARTICIPANT_COMMIT_RECEIVED; cgcpParticipantState = GCP_PARTICIPANT_COMMIT_RECEIVED;
signal->theData[0] = calcDihBlockRef(masterNodeId);
signal->theData[1] = coldgcp; signal->theData[1] = coldgcp;
sendSignal(clocaltcblockref, GSN_GCP_NOMORETRANS, signal, 2, JBB); sendSignal(clocaltcblockref, GSN_GCP_NOMORETRANS, signal, 2, JBB);
return; return;
...@@ -7713,11 +7716,13 @@ void Dbdih::execGCP_TCFINISHED(Signal* signal) ...@@ -7713,11 +7716,13 @@ void Dbdih::execGCP_TCFINISHED(Signal* signal)
{ {
jamEntry(); jamEntry();
CRASH_INSERTION(7007); CRASH_INSERTION(7007);
Uint32 retRef = signal->theData[0];
Uint32 gci = signal->theData[1]; Uint32 gci = signal->theData[1];
ndbrequire(gci == coldgcp); ndbrequire(gci == coldgcp);
if (ERROR_INSERTED(7181) || ERROR_INSERTED(7182)) if (ERROR_INSERTED(7181) || ERROR_INSERTED(7182))
{ {
c_error_7181_ref = retRef; // Save ref
ndbout_c("killing %d", refToNode(cmasterdihref)); ndbout_c("killing %d", refToNode(cmasterdihref));
signal->theData[0] = 9999; signal->theData[0] = 9999;
sendSignal(numberToRef(CMVMI, refToNode(cmasterdihref)), sendSignal(numberToRef(CMVMI, refToNode(cmasterdihref)),
...@@ -7729,7 +7734,7 @@ void Dbdih::execGCP_TCFINISHED(Signal* signal) ...@@ -7729,7 +7734,7 @@ void Dbdih::execGCP_TCFINISHED(Signal* signal)
signal->theData[0] = cownNodeId; signal->theData[0] = cownNodeId;
signal->theData[1] = coldgcp; signal->theData[1] = coldgcp;
signal->theData[2] = cfailurenr; signal->theData[2] = cfailurenr;
sendSignal(cmasterdihref, GSN_GCP_NODEFINISH, signal, 3, JBB); sendSignal(retRef, GSN_GCP_NODEFINISH, signal, 3, JBB);
}//Dbdih::execGCP_TCFINISHED() }//Dbdih::execGCP_TCFINISHED()
/*****************************************************************************/ /*****************************************************************************/
......
...@@ -1953,5 +1953,8 @@ private: ...@@ -1953,5 +1953,8 @@ private:
// those variables should be removed and exchanged for stack // those variables should be removed and exchanged for stack
// variable communication. // variable communication.
/**************************************************************************/ /**************************************************************************/
Uint32 c_gcp_ref;
}; };
#endif #endif
...@@ -6893,6 +6893,7 @@ void Dbtc::timeOutFoundFragLab(Signal* signal, UintR TscanConPtr) ...@@ -6893,6 +6893,7 @@ void Dbtc::timeOutFoundFragLab(Signal* signal, UintR TscanConPtr)
void Dbtc::execGCP_NOMORETRANS(Signal* signal) void Dbtc::execGCP_NOMORETRANS(Signal* signal)
{ {
jamEntry(); jamEntry();
c_gcp_ref = signal->theData[0];
tcheckGcpId = signal->theData[1]; tcheckGcpId = signal->theData[1];
if (cfirstgcp != RNIL) { if (cfirstgcp != RNIL) {
jam(); jam();
...@@ -9935,6 +9936,7 @@ void Dbtc::sendScanTabConf(Signal* signal, ScanRecordPtr scanPtr) { ...@@ -9935,6 +9936,7 @@ void Dbtc::sendScanTabConf(Signal* signal, ScanRecordPtr scanPtr) {
void Dbtc::gcpTcfinished(Signal* signal) void Dbtc::gcpTcfinished(Signal* signal)
{ {
signal->theData[0] = c_gcp_ref;
signal->theData[1] = tcheckGcpId; signal->theData[1] = tcheckGcpId;
sendSignal(cdihblockref, GSN_GCP_TCFINISHED, signal, 2, JBB); sendSignal(cdihblockref, GSN_GCP_TCFINISHED, signal, 2, JBB);
}//Dbtc::gcpTcfinished() }//Dbtc::gcpTcfinished()
......
...@@ -1160,7 +1160,7 @@ runBug27003(NDBT_Context* ctx, NDBT_Step* step) ...@@ -1160,7 +1160,7 @@ runBug27003(NDBT_Context* ctx, NDBT_Step* step)
return NDBT_FAILED; return NDBT_FAILED;
res.startNodes(&node, 1); res.startNodes(&node, 1);
res.waitNodesStartPhase(&node, 1, 2); NdbSleep_SecSleep(3);
pos++; pos++;
} }
pos = 0; pos = 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