mirror of
https://github.com/MariaDB/server.git
synced 2026-05-07 23:54:31 +02:00
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:
parent
a455733cf7
commit
85f94ce992
1 changed files with 8 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue