ndb - bug#8876 third and final solution

ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  lqh to forward abort within ng
This commit is contained in:
unknown 2005-03-03 12:45:49 +01:00
commit 85f94ce992

View file

@ -5923,11 +5923,17 @@ int Dbtc::releaseAndAbort(Signal* signal)
UintR TnoLoops = tcConnectptr.p->noOfNodes;
apiConnectptr.p->counter++;
bool prevAlive = false;
for (Uint32 Ti = 0; Ti < TnoLoops ; Ti++) {
localHostptr.i = tcConnectptr.p->tcNodedata[Ti];
ptrCheckGuard(localHostptr, chostFilesize, hostRecord);
if (localHostptr.p->hostStatus == HS_ALIVE) {
jam();
if (prevAlive) {
// if previous is alive, its LQH forwards abort to this node
jam();
continue;
}
/* ************< */
/* ABORT < */
/* ************< */
@ -5937,6 +5943,7 @@ int Dbtc::releaseAndAbort(Signal* signal)
signal->theData[2] = apiConnectptr.p->transid[0];
signal->theData[3] = apiConnectptr.p->transid[1];
sendSignal(tblockref, GSN_ABORT, signal, 4, JBB);
prevAlive = true;
} else {
jam();
signal->theData[0] = tcConnectptr.i;
@ -5945,6 +5952,7 @@ int Dbtc::releaseAndAbort(Signal* signal)
signal->theData[3] = localHostptr.i;
signal->theData[4] = ZFALSE;
sendSignal(cownref, GSN_ABORTED, signal, 5, JBB);
prevAlive = false;
}//if
}//for
return 1;