diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2006-04-06 16:25:19 +0200 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2006-04-06 16:25:19 +0200 |
commit | 7a098d1a6e4ad6ed824c3c6786fca9f0663f11e1 (patch) | |
tree | 710c65302c2a031068a626894a3684fe343bb3aa /storage | |
parent | 7c68b5d743ae5dc972cf55e80f4798661a5a6e6a (diff) | |
parent | 4c4afd225e0c31f42bf5fe82eeccd3c1317c4ade (diff) | |
download | mariadb-git-7a098d1a6e4ad6ed824c3c6786fca9f0663f11e1.tar.gz |
Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into perch.ndb.mysql.com:/home/jonas/src/51-work
storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
merge
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
merge
Diffstat (limited to 'storage')
-rw-r--r-- | storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp | 4 | ||||
-rw-r--r-- | storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp | 20 |
2 files changed, 17 insertions, 7 deletions
diff --git a/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp b/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp index d1a3c46cca5..70c0fdfc988 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp +++ b/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp @@ -433,7 +433,7 @@ private: Uint16 cfailedNodes[MAX_NDB_NODES]; Uint16 cprepFailedNodes[MAX_NDB_NODES]; Uint16 ccommitFailedNodes[MAX_NDB_NODES]; - + struct OpAllocNodeIdReq { RequestTracker m_tracker; AllocNodeIdReq m_req; @@ -444,7 +444,7 @@ private: struct OpAllocNodeIdReq opAllocNodeIdReq; StopReq c_stopReq; - void check_multi_node_shutdown(Signal* signal); + bool check_multi_node_shutdown(Signal* signal); }; #endif diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp index ea15bf971f4..de1160fb841 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp +++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp @@ -2766,7 +2766,11 @@ void Qmgr::failReportLab(Signal* signal, Uint16 aFailedNode, ptrCheckGuard(failedNodePtr, MAX_NODES, nodeRec); FailRep* rep = (FailRep*)signal->getDataPtr(); - check_multi_node_shutdown(signal); + if (check_multi_node_shutdown(signal)) + { + jam(); + return; + } if (failedNodePtr.i == getOwnNodeId()) { jam(); @@ -2835,8 +2839,8 @@ void Qmgr::failReportLab(Signal* signal, Uint16 aFailedNode, "We(%u) have been declared dead by %u reason: %s(%u)", getOwnNodeId(), refToNode(signal->getSendersBlockRef()), - aFailCause, - msg ? msg : "<Unknown>"); + msg ? msg : "<Unknown>", + aFailCause); progError(__LINE__, code, buf); return; @@ -2896,7 +2900,11 @@ void Qmgr::execPREP_FAILREQ(Signal* signal) NodeRecPtr myNodePtr; jamEntry(); - check_multi_node_shutdown(signal); + if (check_multi_node_shutdown(signal)) + { + jam(); + return; + } PrepFailReqRef * const prepFail = (PrepFailReqRef *)&signal->theData[0]; @@ -4897,7 +4905,7 @@ Qmgr::execSTOP_REQ(Signal* signal) } } -void +bool Qmgr::check_multi_node_shutdown(Signal* signal) { if (c_stopReq.senderRef && @@ -4913,5 +4921,7 @@ Qmgr::check_multi_node_shutdown(Signal* signal) } else { EXECUTE_DIRECT(CMVMI, GSN_STOP_ORD, signal, 1); } + return true; } + return false; } |