diff options
author | unknown <tulin@dl145b.mysql.com> | 2005-09-12 17:49:48 +0200 |
---|---|---|
committer | unknown <tulin@dl145b.mysql.com> | 2005-09-12 17:49:48 +0200 |
commit | 3f40506633c87c93a3606ebd9a3c60cd3dca7368 (patch) | |
tree | 3fd8c78d26e4b1ab4bc0db7d05ce254273e78741 | |
parent | 3ad213baca1fcdecd36b6a292d987cfe54f1e5e9 (diff) | |
download | mariadb-git-3f40506633c87c93a3606ebd9a3c60cd3dca7368.tar.gz |
Corrected construct of faked Node fail signals in ndb SignalSender
-rw-r--r-- | ndb/src/mgmsrv/MgmtSrvr.cpp | 5 | ||||
-rw-r--r-- | ndb/src/ndbapi/SignalSender.cpp | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/ndb/src/mgmsrv/MgmtSrvr.cpp b/ndb/src/mgmsrv/MgmtSrvr.cpp index 011643237f8..56c24e5f862 100644 --- a/ndb/src/mgmsrv/MgmtSrvr.cpp +++ b/ndb/src/mgmsrv/MgmtSrvr.cpp @@ -2501,10 +2501,7 @@ MgmtSrvr::startBackup(Uint32& backupId, int waitCompleted) case GSN_NODE_FAILREP:{ const NodeFailRep * const rep = CAST_CONSTPTR(NodeFailRep, signal->getDataPtr()); -#ifdef VM_TRACE - ndbout_c("Node %d failed", rep->failNo); -#endif - if (rep->failNo == nodeId || + if (NodeBitmask::get(rep->theNodes,nodeId) || waitCompleted == 1) return 1326; // wait for next signal diff --git a/ndb/src/ndbapi/SignalSender.cpp b/ndb/src/ndbapi/SignalSender.cpp index a1c80f22041..327f34f178a 100644 --- a/ndb/src/ndbapi/SignalSender.cpp +++ b/ndb/src/ndbapi/SignalSender.cpp @@ -250,14 +250,22 @@ SignalSender::execNodeStatus(void* signalSender, // node shutdown complete s->header.theVerId_signalNumber = GSN_NF_COMPLETEREP; NFCompleteRep *rep = (NFCompleteRep *)s->getDataPtrSend(); + rep->blockNo = 0; + rep->nodeId = 0; rep->failedNodeId = nodeId; + rep->unused = 0; + rep->from = 0; } else { // node failure s->header.theVerId_signalNumber = GSN_NODE_FAILREP; NodeFailRep *rep = (NodeFailRep *)s->getDataPtrSend(); - rep->failNo = nodeId; + rep->failNo = 0; + rep->masterNodeId = 0; + rep->noOfNodes = 1; + NodeBitmask::clear(rep->theNodes); + NodeBitmask::set(rep->theNodes,nodeId); } ss->m_jobBuffer.push_back(s); |