Commit a100123a authored by unknown's avatar unknown

adopted to corrected ndb SendSignal Node failrep

parent 45433e78
...@@ -765,7 +765,7 @@ MgmtSrvr::sendVersionReq(int v_nodeId, Uint32 &version) ...@@ -765,7 +765,7 @@ MgmtSrvr::sendVersionReq(int v_nodeId, Uint32 &version)
case GSN_NODE_FAILREP:{ case GSN_NODE_FAILREP:{
const NodeFailRep * const rep = const NodeFailRep * const rep =
CAST_CONSTPTR(NodeFailRep, signal->getDataPtr()); CAST_CONSTPTR(NodeFailRep, signal->getDataPtr());
if (rep->failNo == nodeId) if (NodeBitmask::get(rep->theNodes,nodeId))
do_send = 1; // retry with other node do_send = 1; // retry with other node
continue; continue;
} }
...@@ -894,14 +894,23 @@ int MgmtSrvr::sendSTOP_REQ(NodeId nodeId, ...@@ -894,14 +894,23 @@ int MgmtSrvr::sendSTOP_REQ(NodeId nodeId,
case GSN_NODE_FAILREP:{ case GSN_NODE_FAILREP:{
const NodeFailRep * const rep = const NodeFailRep * const rep =
CAST_CONSTPTR(NodeFailRep, signal->getDataPtr()); CAST_CONSTPTR(NodeFailRep, signal->getDataPtr());
NodeBitmask failedNodes;
failedNodes.assign(NodeBitmask::Size, rep->theNodes);
#ifdef VM_TRACE #ifdef VM_TRACE
ndbout_c("Node %d failed", rep->failNo); {
ndbout << "Failed nodes:";
for (unsigned i = 0; i < 32*NodeBitmask::Size; i++)
if(failedNodes.get(i))
ndbout << " " << i;
ndbout << endl;
}
#endif #endif
if (nodes.get(rep->failNo)) failedNodes.bitAND(nodes);
if (!failedNodes.isclear())
{ {
nodes.clear(rep->failNo); nodes.bitANDC(failedNodes); // clear the failed nodes
if (singleUserNodeId == 0) if (singleUserNodeId == 0)
stoppedNodes.set(rep->failNo); stoppedNodes.bitOR(failedNodes);
} }
break; break;
} }
...@@ -1244,7 +1253,7 @@ MgmtSrvr::setEventReportingLevelImpl(int nodeId, ...@@ -1244,7 +1253,7 @@ MgmtSrvr::setEventReportingLevelImpl(int nodeId,
case GSN_NODE_FAILREP:{ case GSN_NODE_FAILREP:{
const NodeFailRep * const rep = const NodeFailRep * const rep =
CAST_CONSTPTR(NodeFailRep, signal->getDataPtr()); CAST_CONSTPTR(NodeFailRep, signal->getDataPtr());
if (rep->failNo == nodeId) if (NodeBitmask::get(rep->theNodes,nodeId))
return SEND_OR_RECEIVE_FAILED; return SEND_OR_RECEIVE_FAILED;
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment