summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorjonas@perch.ndb.mysql.com <>2006-04-06 16:18:42 +0200
committerjonas@perch.ndb.mysql.com <>2006-04-06 16:18:42 +0200
commitf41db42287b685fcde3525c07347d71477638acb (patch)
tree7969c3812c92263bab0b5acac2f1d763b620baf3 /ndb
parent2abc5e2f77ca6ef18826b42aa325431aac320674 (diff)
downloadmariadb-git-f41db42287b685fcde3525c07347d71477638acb.tar.gz
ndb - bug#18612 - post review fixes
1) make sure that check_multi_node_shutdown does not proceed (in stop case) 2) Fix printout
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/kernel/blocks/qmgr/Qmgr.hpp2
-rw-r--r--ndb/src/kernel/blocks/qmgr/QmgrMain.cpp20
2 files changed, 16 insertions, 6 deletions
diff --git a/ndb/src/kernel/blocks/qmgr/Qmgr.hpp b/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
index 07e6a2a10c1..02be002cae0 100644
--- a/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
+++ b/ndb/src/kernel/blocks/qmgr/Qmgr.hpp
@@ -409,7 +409,7 @@ private:
Uint16 ccommitFailedNodes[MAX_NDB_NODES];
StopReq c_stopReq;
- void check_multi_node_shutdown(Signal* signal);
+ bool check_multi_node_shutdown(Signal* signal);
};
#endif
diff --git a/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp b/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
index c17922dff48..8b7caadfeb9 100644
--- a/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
+++ b/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
@@ -2296,7 +2296,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();
@@ -2360,8 +2364,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;
@@ -2421,7 +2425,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];
@@ -4255,7 +4263,7 @@ Qmgr::execSTOP_REQ(Signal* signal)
}
}
-void
+bool
Qmgr::check_multi_node_shutdown(Signal* signal)
{
if (c_stopReq.senderRef &&
@@ -4271,5 +4279,7 @@ Qmgr::check_multi_node_shutdown(Signal* signal)
} else {
EXECUTE_DIRECT(CMVMI, GSN_STOP_ORD, signal, 1);
}
+ return true;
}
+ return false;
}