Commit 7db7cd46 authored by tomas@poseidon.ndb.mysql.com's avatar tomas@poseidon.ndb.mysql.com

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

into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new
parents 9ec6f1ea 61987927
...@@ -3027,7 +3027,7 @@ void Dbtc::tckeyreq050Lab(Signal* signal) ...@@ -3027,7 +3027,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++) {
...@@ -6306,7 +6306,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr) ...@@ -6306,7 +6306,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr)
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) {
...@@ -6332,7 +6332,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr) ...@@ -6332,7 +6332,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr)
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) {
...@@ -6358,7 +6358,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr) ...@@ -6358,7 +6358,7 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr)
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) {
...@@ -6495,7 +6495,7 @@ void Dbtc::sendAbortedAfterTimeout(Signal* signal, int Tcheck) ...@@ -6495,7 +6495,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) {
...@@ -7552,7 +7552,7 @@ void Dbtc::execABORTCONF(Signal* signal) ...@@ -7552,7 +7552,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);
...@@ -7568,7 +7568,7 @@ void Dbtc::toAbortHandlingLab(Signal* signal) ...@@ -7568,7 +7568,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];
...@@ -7702,7 +7702,7 @@ void Dbtc::execCOMMITCONF(Signal* signal) ...@@ -7702,7 +7702,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);
...@@ -7722,7 +7722,7 @@ void Dbtc::toCommitHandlingLab(Signal* signal) ...@@ -7722,7 +7722,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();
...@@ -7847,7 +7847,7 @@ void Dbtc::execCOMPLETECONF(Signal* signal) ...@@ -7847,7 +7847,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);
...@@ -7867,7 +7867,7 @@ void Dbtc::toCompleteHandlingLab(Signal* signal) ...@@ -7867,7 +7867,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();
...@@ -8156,6 +8156,7 @@ void Dbtc::setupFailData(Signal* signal) ...@@ -8156,6 +8156,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();
/*------------------------------------------------------------------- /*-------------------------------------------------------------------
...@@ -8163,13 +8164,13 @@ void Dbtc::setupFailData(Signal* signal) ...@@ -8163,13 +8164,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();
/*------------------------------------------------------------------- /*-------------------------------------------------------------------
...@@ -8177,19 +8178,18 @@ void Dbtc::setupFailData(Signal* signal) ...@@ -8177,19 +8178,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