From 372cbc1def63bfe1a5919e6688edac17503193ff Mon Sep 17 00:00:00 2001 From: "jonas@perch.ndb.mysql.com" <> Date: Fri, 19 Jan 2007 17:01:52 +0100 Subject: [PATCH] ndb - bug#19645 fix some more sp100 hang cases --- .../ndb/src/kernel/blocks/qmgr/QmgrMain.cpp | 5 ++++ storage/ndb/src/kernel/blocks/suma/Suma.cpp | 29 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp index 89b1d18f22c..f4a4bbbb400 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp +++ b/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; diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.cpp b/storage/ndb/src/kernel/blocks/suma/Suma.cpp index 6f45cfb1975..3804cda00c9 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.cpp +++ b/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; + } } /*************************************************************