Browse Source

ndb - bug#19645

fix some more sp100 hang cases
pull/73/head
jonas@perch.ndb.mysql.com 19 years ago
parent
commit
372cbc1def
  1. 5
      storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
  2. 29
      storage/ndb/src/kernel/blocks/suma/Suma.cpp

5
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp

@ -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;

29
storage/ndb/src/kernel/blocks/suma/Suma.cpp

@ -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;
}
}
/*************************************************************

Loading…
Cancel
Save