Commit 4e055f3f authored by unknown's avatar unknown

ndb - bug#19645

  fix some more sp100 hang cases


storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
  let suma know of API_FAILREQ even if not connected, to handle startme/handover 
    problem
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
  some error inserts
  + resend API_FAILREQ during handover
parent 6d7c9d86
......@@ -2456,7 +2456,12 @@ void Qmgr::execAPI_FAILREQ(Signal* signal)
// ignore if api not active
if (failedNodePtr.p->phase != ZAPI_ACTIVE)
{
jam();
// But send to SUMA anyway...
sendSignal(SUMA_REF, GSN_API_FAILREQ, signal, 2, JBA);
return;
}
signal->theData[0] = NDB_LE_Disconnected;
signal->theData[1] = failedNodePtr.i;
......
......@@ -319,6 +319,12 @@ Suma::execSTTOR(Signal* signal) {
createSequence(signal);
DBUG_VOID_RETURN;
}//if
if (ERROR_INSERTED(13030))
{
ndbout_c("Dont start handover");
return;
}
}//if
if(startphase == 100)
......@@ -564,6 +570,15 @@ void Suma::execAPI_FAILREQ(Signal* signal)
Uint32 failedApiNode = signal->theData[0];
//BlockReference retRef = signal->theData[1];
if (c_startup.m_restart_server_node_id &&
c_startup.m_restart_server_node_id != RNIL)
{
jam();
sendSignalWithDelay(reference(), GSN_API_FAILREQ, signal,
200, signal->getLength());
return;
}
c_failedApiNodes.set(failedApiNode);
c_connected_nodes.clear(failedApiNode);
bool found = removeSubscribersOnNode(signal, failedApiNode);
......@@ -912,6 +927,20 @@ Suma::execDUMP_STATE_ORD(Signal* signal){
{
CLEAR_ERROR_INSERT_VALUE;
}
if (tCase == 8009)
{
if (ERROR_INSERTED(13030))
{
CLEAR_ERROR_INSERT_VALUE;
sendSTTORRY(signal);
}
else
{
SET_ERROR_INSERT_VALUE(13030);
}
return;
}
}
/*************************************************************
......
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