mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 05:52:27 +01:00
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
This commit is contained in:
parent
6d7c9d8641
commit
4e055f3f3c
2 changed files with 34 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
|
|
Loading…
Reference in a new issue