diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2005-03-04 12:23:17 +0100 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2005-03-04 12:23:17 +0100 |
commit | 45b0ea6546a522a496e286caece19ec3005167c4 (patch) | |
tree | f63ea56c53f9aa529b9766d9edd490288044f94f /ndb | |
parent | db86cb81aae20fa8cdd594f3f6ec28d262db9c60 (diff) | |
parent | aec0408ba9634bc15be77b8507ca8b83ff609e24 (diff) | |
download | mariadb-git-45b0ea6546a522a496e286caece19ec3005167c4.tar.gz |
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0-ndb
ndb/include/ndbapi/NdbTransaction.hpp:
Auto merged
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
ndb/test/ndbapi/testNodeRestart.cpp:
Auto merged
ndb/test/run-test/daily-devel-tests.txt:
Auto merged
Diffstat (limited to 'ndb')
-rw-r--r-- | ndb/src/kernel/blocks/dbtc/DbtcMain.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp b/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp index 15de44a5d2d..17d55176830 100644 --- a/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +++ b/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp @@ -6074,11 +6074,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 < */ /* ************< */ @@ -6088,15 +6094,16 @@ 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); - return 1; + prevAlive = true; } else { jam(); signal->theData[0] = tcConnectptr.i; signal->theData[1] = apiConnectptr.p->transid[0]; signal->theData[2] = apiConnectptr.p->transid[1]; - signal->theData[3] = hostptr.i; + signal->theData[3] = localHostptr.i; signal->theData[4] = ZFALSE; sendSignal(cownref, GSN_ABORTED, signal, 5, JBB); + prevAlive = false; }//if }//for return 1; |