Commit ef835df8 authored by unknown's avatar unknown

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

into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0


ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
  Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Auto merged
parents 45bad602 b0d896e6
...@@ -11840,7 +11840,8 @@ void Dbdih::newCrashedReplica(Uint32 nodeId, ReplicaRecordPtr ncrReplicaPtr) ...@@ -11840,7 +11840,8 @@ void Dbdih::newCrashedReplica(Uint32 nodeId, ReplicaRecordPtr ncrReplicaPtr)
/* THAT THE NEW REPLICA IS NOT STARTED YET AND REPLICA_LAST_GCI IS*/ /* THAT THE NEW REPLICA IS NOT STARTED YET AND REPLICA_LAST_GCI IS*/
/* SET TO -1 TO INDICATE THAT IT IS NOT DEAD YET. */ /* SET TO -1 TO INDICATE THAT IT IS NOT DEAD YET. */
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
arrGuard(ncrReplicaPtr.p->noCrashedReplicas + 1, 8); arrGuardErr(ncrReplicaPtr.p->noCrashedReplicas + 1, 8,
NDBD_EXIT_MAX_CRASHED_REPLICAS);
ncrReplicaPtr.p->replicaLastGci[ncrReplicaPtr.p->noCrashedReplicas] = ncrReplicaPtr.p->replicaLastGci[ncrReplicaPtr.p->noCrashedReplicas] =
SYSFILE->lastCompletedGCI[nodeId]; SYSFILE->lastCompletedGCI[nodeId];
ncrReplicaPtr.p->noCrashedReplicas = ncrReplicaPtr.p->noCrashedReplicas + 1; ncrReplicaPtr.p->noCrashedReplicas = ncrReplicaPtr.p->noCrashedReplicas + 1;
......
...@@ -3054,7 +3054,7 @@ void Dbtc::tckeyreq050Lab(Signal* signal) ...@@ -3054,7 +3054,7 @@ void Dbtc::tckeyreq050Lab(Signal* signal)
/* NODE IF POSSIBLE TO AVOID UNNECESSARY COMMUNICATION */ /* NODE IF POSSIBLE TO AVOID UNNECESSARY COMMUNICATION */
/* WITH SIMPLE READS. */ /* WITH SIMPLE READS. */
/*-------------------------------------------------------------*/ /*-------------------------------------------------------------*/
arrGuard(tnoOfBackup, 4); arrGuard(tnoOfBackup, MAX_REPLICAS);
UintR Tindex; UintR Tindex;
UintR TownNode = cownNodeid; UintR TownNode = cownNodeid;
for (Tindex = 1; Tindex <= tnoOfBackup; Tindex++) { for (Tindex = 1; Tindex <= tnoOfBackup; Tindex++) {
...@@ -6325,7 +6325,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) ...@@ -6325,7 +6325,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode)
jam(); jam();
tcConnectptr.i = apiConnectptr.p->currentTcConnect; tcConnectptr.i = apiConnectptr.p->currentTcConnect;
ptrCheckGuard(tcConnectptr, ctcConnectFilesize, tcConnectRecord); ptrCheckGuard(tcConnectptr, ctcConnectFilesize, tcConnectRecord);
arrGuard(apiConnectptr.p->currentReplicaNo, 4); arrGuard(apiConnectptr.p->currentReplicaNo, MAX_REPLICAS);
hostptr.i = tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo]; hostptr.i = tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo];
ptrCheckGuard(hostptr, chostFilesize, hostRecord); ptrCheckGuard(hostptr, chostFilesize, hostRecord);
if (hostptr.p->hostStatus == HS_ALIVE) { if (hostptr.p->hostStatus == HS_ALIVE) {
...@@ -6351,7 +6351,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) ...@@ -6351,7 +6351,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode)
jam(); jam();
tcConnectptr.i = apiConnectptr.p->currentTcConnect; tcConnectptr.i = apiConnectptr.p->currentTcConnect;
ptrCheckGuard(tcConnectptr, ctcConnectFilesize, tcConnectRecord); ptrCheckGuard(tcConnectptr, ctcConnectFilesize, tcConnectRecord);
arrGuard(apiConnectptr.p->currentReplicaNo, 4); arrGuard(apiConnectptr.p->currentReplicaNo, MAX_REPLICAS);
hostptr.i = tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo]; hostptr.i = tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo];
ptrCheckGuard(hostptr, chostFilesize, hostRecord); ptrCheckGuard(hostptr, chostFilesize, hostRecord);
if (hostptr.p->hostStatus == HS_ALIVE) { if (hostptr.p->hostStatus == HS_ALIVE) {
...@@ -6377,7 +6377,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode) ...@@ -6377,7 +6377,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr, Uint32 errCode)
jam(); jam();
tcConnectptr.i = apiConnectptr.p->currentTcConnect; tcConnectptr.i = apiConnectptr.p->currentTcConnect;
ptrCheckGuard(tcConnectptr, ctcConnectFilesize, tcConnectRecord); ptrCheckGuard(tcConnectptr, ctcConnectFilesize, tcConnectRecord);
arrGuard(apiConnectptr.p->currentReplicaNo, 4); arrGuard(apiConnectptr.p->currentReplicaNo, MAX_REPLICAS);
hostptr.i = tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo]; hostptr.i = tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo];
ptrCheckGuard(hostptr, chostFilesize, hostRecord); ptrCheckGuard(hostptr, chostFilesize, hostRecord);
if (hostptr.p->hostStatus == HS_ALIVE) { if (hostptr.p->hostStatus == HS_ALIVE) {
...@@ -6552,7 +6552,7 @@ void Dbtc::sendAbortedAfterTimeout(Signal* signal, int Tcheck) ...@@ -6552,7 +6552,7 @@ void Dbtc::sendAbortedAfterTimeout(Signal* signal, int Tcheck)
// in time to the ABORT signal we will declare it as dead. // in time to the ABORT signal we will declare it as dead.
/*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/
UintR Ti = 0; UintR Ti = 0;
arrGuard(tcConnectptr.p->noOfNodes, 4); arrGuard(tcConnectptr.p->noOfNodes, MAX_REPLICAS+1);
for (Ti = 0; Ti < tcConnectptr.p->noOfNodes; Ti++) { for (Ti = 0; Ti < tcConnectptr.p->noOfNodes; Ti++) {
jam(); jam();
if (tcConnectptr.p->tcNodedata[Ti] != 0) { if (tcConnectptr.p->tcNodedata[Ti] != 0) {
...@@ -7545,7 +7545,7 @@ void Dbtc::execABORTCONF(Signal* signal) ...@@ -7545,7 +7545,7 @@ void Dbtc::execABORTCONF(Signal* signal)
warningReport(signal, 18); warningReport(signal, 18);
return; return;
}//if }//if
arrGuard(apiConnectptr.p->currentReplicaNo, 4); arrGuard(apiConnectptr.p->currentReplicaNo, MAX_REPLICAS);
if (tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo] != if (tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo] !=
tnodeid) { tnodeid) {
warningReport(signal, 19); warningReport(signal, 19);
...@@ -7561,7 +7561,7 @@ void Dbtc::toAbortHandlingLab(Signal* signal) ...@@ -7561,7 +7561,7 @@ void Dbtc::toAbortHandlingLab(Signal* signal)
do { do {
if (tcurrentReplicaNo != (Uint8)Z8NIL) { if (tcurrentReplicaNo != (Uint8)Z8NIL) {
jam(); jam();
arrGuard(tcurrentReplicaNo, 4); arrGuard(tcurrentReplicaNo, MAX_REPLICAS);
const LqhTransConf::OperationStatus stat = const LqhTransConf::OperationStatus stat =
(LqhTransConf::OperationStatus) (LqhTransConf::OperationStatus)
tcConnectptr.p->failData[tcurrentReplicaNo]; tcConnectptr.p->failData[tcurrentReplicaNo];
...@@ -7695,7 +7695,7 @@ void Dbtc::execCOMMITCONF(Signal* signal) ...@@ -7695,7 +7695,7 @@ void Dbtc::execCOMMITCONF(Signal* signal)
warningReport(signal, 10); warningReport(signal, 10);
return; return;
}//if }//if
arrGuard(apiConnectptr.p->currentReplicaNo, 4); arrGuard(apiConnectptr.p->currentReplicaNo, MAX_REPLICAS);
if (tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo] != if (tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo] !=
tnodeid) { tnodeid) {
warningReport(signal, 11); warningReport(signal, 11);
...@@ -7715,7 +7715,7 @@ void Dbtc::toCommitHandlingLab(Signal* signal) ...@@ -7715,7 +7715,7 @@ void Dbtc::toCommitHandlingLab(Signal* signal)
do { do {
if (tcurrentReplicaNo != (Uint8)Z8NIL) { if (tcurrentReplicaNo != (Uint8)Z8NIL) {
jam(); jam();
arrGuard(tcurrentReplicaNo, 4); arrGuard(tcurrentReplicaNo, MAX_REPLICAS);
switch (tcConnectptr.p->failData[tcurrentReplicaNo]) { switch (tcConnectptr.p->failData[tcurrentReplicaNo]) {
case LqhTransConf::InvalidStatus: case LqhTransConf::InvalidStatus:
jam(); jam();
...@@ -7840,7 +7840,7 @@ void Dbtc::execCOMPLETECONF(Signal* signal) ...@@ -7840,7 +7840,7 @@ void Dbtc::execCOMPLETECONF(Signal* signal)
warningReport(signal, 14); warningReport(signal, 14);
return; return;
}//if }//if
arrGuard(apiConnectptr.p->currentReplicaNo, 4); arrGuard(apiConnectptr.p->currentReplicaNo, MAX_REPLICAS);
if (tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo] != if (tcConnectptr.p->tcNodedata[apiConnectptr.p->currentReplicaNo] !=
tnodeid) { tnodeid) {
warningReport(signal, 15); warningReport(signal, 15);
...@@ -7860,7 +7860,7 @@ void Dbtc::toCompleteHandlingLab(Signal* signal) ...@@ -7860,7 +7860,7 @@ void Dbtc::toCompleteHandlingLab(Signal* signal)
do { do {
if (tcurrentReplicaNo != (Uint8)Z8NIL) { if (tcurrentReplicaNo != (Uint8)Z8NIL) {
jam(); jam();
arrGuard(tcurrentReplicaNo, 4); arrGuard(tcurrentReplicaNo, MAX_REPLICAS);
switch (tcConnectptr.p->failData[tcurrentReplicaNo]) { switch (tcConnectptr.p->failData[tcurrentReplicaNo]) {
case LqhTransConf::InvalidStatus: case LqhTransConf::InvalidStatus:
jam(); jam();
...@@ -8150,6 +8150,7 @@ void Dbtc::setupFailData(Signal* signal) ...@@ -8150,6 +8150,7 @@ void Dbtc::setupFailData(Signal* signal)
case OS_PREPARED: case OS_PREPARED:
case OS_COMMITTING: case OS_COMMITTING:
jam(); jam();
arrGuard(tcConnectptr.p->lastReplicaNo, MAX_REPLICAS);
for (tindex = 0; tindex <= tcConnectptr.p->lastReplicaNo; tindex++) { for (tindex = 0; tindex <= tcConnectptr.p->lastReplicaNo; tindex++) {
jam(); jam();
/*------------------------------------------------------------------- /*-------------------------------------------------------------------
...@@ -8157,13 +8158,13 @@ void Dbtc::setupFailData(Signal* signal) ...@@ -8157,13 +8158,13 @@ void Dbtc::setupFailData(Signal* signal)
* IN THIS CASE ALL LQH'S ARE PREPARED AND WAITING FOR * IN THIS CASE ALL LQH'S ARE PREPARED AND WAITING FOR
* COMMIT/ABORT DECISION. * COMMIT/ABORT DECISION.
*------------------------------------------------------------------*/ *------------------------------------------------------------------*/
arrGuard(tindex, 4);
tcConnectptr.p->failData[tindex] = LqhTransConf::Prepared; tcConnectptr.p->failData[tindex] = LqhTransConf::Prepared;
}//for }//for
break; break;
case OS_COMMITTED: case OS_COMMITTED:
case OS_COMPLETING: case OS_COMPLETING:
jam(); jam();
arrGuard(tcConnectptr.p->lastReplicaNo, MAX_REPLICAS);
for (tindex = 0; tindex <= tcConnectptr.p->lastReplicaNo; tindex++) { for (tindex = 0; tindex <= tcConnectptr.p->lastReplicaNo; tindex++) {
jam(); jam();
/*------------------------------------------------------------------- /*-------------------------------------------------------------------
...@@ -8171,19 +8172,18 @@ void Dbtc::setupFailData(Signal* signal) ...@@ -8171,19 +8172,18 @@ void Dbtc::setupFailData(Signal* signal)
* IN THIS CASE ALL LQH'S ARE COMMITTED AND WAITING FOR * IN THIS CASE ALL LQH'S ARE COMMITTED AND WAITING FOR
* COMPLETE MESSAGE. * COMPLETE MESSAGE.
*------------------------------------------------------------------*/ *------------------------------------------------------------------*/
arrGuard(tindex, 4);
tcConnectptr.p->failData[tindex] = LqhTransConf::Committed; tcConnectptr.p->failData[tindex] = LqhTransConf::Committed;
}//for }//for
break; break;
case OS_COMPLETED: case OS_COMPLETED:
jam(); jam();
arrGuard(tcConnectptr.p->lastReplicaNo, MAX_REPLICAS);
for (tindex = 0; tindex <= tcConnectptr.p->lastReplicaNo; tindex++) { for (tindex = 0; tindex <= tcConnectptr.p->lastReplicaNo; tindex++) {
jam(); jam();
/*------------------------------------------------------------------- /*-------------------------------------------------------------------
* KEYDATA IS USED TO KEEP AN INDICATION OF STATE IN LQH. * KEYDATA IS USED TO KEEP AN INDICATION OF STATE IN LQH.
* IN THIS CASE ALL LQH'S ARE COMPLETED. * IN THIS CASE ALL LQH'S ARE COMPLETED.
*-------------------------------------------------------------------*/ *-------------------------------------------------------------------*/
arrGuard(tindex, 4);
tcConnectptr.p->failData[tindex] = LqhTransConf::InvalidStatus; tcConnectptr.p->failData[tindex] = LqhTransConf::InvalidStatus;
}//for }//for
break; break;
......
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