Commit b96e8d7a authored by unknown's avatar unknown
Browse files

ndb - bug#18612 - post review fixes

  1) make sure that check_multi_node_shutdown does not proceed (in stop case)
  2) Fix printout


ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
  make sure that check_multi_node_shutdown does not proceed (in stop case)
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
  make sure that check_multi_node_shutdown does not proceed (in stop case)
parent e15ff618
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+15 −5
Original line number Diff line number Diff line
@@ -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;
}