summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2007-01-19 19:00:12 +0100
committerunknown <jonas@perch.ndb.mysql.com>2007-01-19 19:00:12 +0100
commite6bb01b8a565b5919fdfb35308b74f786622e9a4 (patch)
treed7cc8c3cb19b2a2463ea32d4a6a4c633b8d464a1 /storage
parentaf05ac763d67079868191e1970b2ec6b0981da15 (diff)
parent4e055f3f3c976e03b8b7c25d964a857f05cdc8ba (diff)
downloadmariadb-git-e6bb01b8a565b5919fdfb35308b74f786622e9a4.tar.gz
Merge perch.ndb.mysql.com:/home/jonas/src/51-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.1-new-ndb storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Auto merged storage/ndb/src/kernel/blocks/suma/Suma.cpp: Auto merged
Diffstat (limited to 'storage')
-rw-r--r--storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp5
-rw-r--r--storage/ndb/src/kernel/blocks/suma/Suma.cpp29
2 files changed, 34 insertions, 0 deletions
diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
index 22b3d5c4960..135d10410b7 100644
--- a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
+++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
@@ -2455,7 +2455,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 0509ef31997..37c65a746e3 100644
--- a/storage/ndb/src/kernel/blocks/suma/Suma.cpp
+++ b/storage/ndb/src/kernel/blocks/suma/Suma.cpp
@@ -318,6 +318,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)
@@ -563,6 +569,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);
@@ -911,6 +926,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;
+ }
}
/*************************************************************