summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2006-04-06 16:25:19 +0200
committerunknown <jonas@perch.ndb.mysql.com>2006-04-06 16:25:19 +0200
commit7a098d1a6e4ad6ed824c3c6786fca9f0663f11e1 (patch)
tree710c65302c2a031068a626894a3684fe343bb3aa /storage
parent7c68b5d743ae5dc972cf55e80f4798661a5a6e6a (diff)
parent4c4afd225e0c31f42bf5fe82eeccd3c1317c4ade (diff)
downloadmariadb-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.hpp4
-rw-r--r--storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp20
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;
}