summaryrefslogtreecommitdiff
path: root/storage/ndb/test/ndbapi/testSRBank.cpp
diff options
context:
space:
mode:
authorunknown <jonas@perch.ndb.mysql.com>2006-08-25 16:47:31 +0200
committerunknown <jonas@perch.ndb.mysql.com>2006-08-25 16:47:31 +0200
commit14b4a2517dee2b036b6ca8d1479c1a257435a6fa (patch)
tree31e0e1d3dccca40b43f28747dd3c5f60beabe87c /storage/ndb/test/ndbapi/testSRBank.cpp
parent4cf7be0c423a7cf43644d66dff8c84dad19a47d1 (diff)
downloadmariadb-git-14b4a2517dee2b036b6ca8d1479c1a257435a6fa.tar.gz
ndb - fix some bug in testSRBank
Diffstat (limited to 'storage/ndb/test/ndbapi/testSRBank.cpp')
-rw-r--r--storage/ndb/test/ndbapi/testSRBank.cpp48
1 files changed, 37 insertions, 11 deletions
diff --git a/storage/ndb/test/ndbapi/testSRBank.cpp b/storage/ndb/test/ndbapi/testSRBank.cpp
index 22fd45bc255..e42a372555d 100644
--- a/storage/ndb/test/ndbapi/testSRBank.cpp
+++ b/storage/ndb/test/ndbapi/testSRBank.cpp
@@ -124,6 +124,7 @@ int runBankSum(NDBT_Context* ctx, NDBT_Step* step){
result = NDBT_FAILED; \
continue; }
+static
int
restart_cluster(NDBT_Context* ctx, NDBT_Step* step, NdbRestarter& restarter)
{
@@ -177,6 +178,7 @@ restart_cluster(NDBT_Context* ctx, NDBT_Step* step, NdbRestarter& restarter)
return result;
}
+static
ndb_mgm_node_state*
select_node_to_stop(Vector<ndb_mgm_node_state>& nodes)
{
@@ -215,6 +217,7 @@ select_node_to_stop(Vector<ndb_mgm_node_state>& nodes)
}
}
+static
ndb_mgm_node_state*
select_node_to_start(Vector<ndb_mgm_node_state>& nodes)
{
@@ -294,23 +297,27 @@ loop:
goto loop;
if (action == AA_RestartNode)
- {
g_err << "Restarting " << node->node_id << endl;
- if (restarter.restartOneDbNode(node->node_id, false, false, true))
- return NDBT_FAILED;
- }
- if (action == AA_StopNode)
- {
+ else
g_err << "Stopping " << node->node_id << endl;
- if (restarter.restartOneDbNode(node->node_id, false, true, true))
- return NDBT_FAILED;
- node->node_status = NDB_MGM_NODE_STATUS_NOT_STARTED;
- }
- break;
+
+ if (restarter.restartOneDbNode(node->node_id, false, true, true))
+ return NDBT_FAILED;
+
+ if (restarter.waitNodesNoStart(&node->node_id, 1))
+ return NDBT_FAILED;
+
+ node->node_status = NDB_MGM_NODE_STATUS_NOT_STARTED;
+
+ if (action == AA_StopNode)
+ break;
+ else
+ goto start;
}
case AA_StartNode:
if ((node = select_node_to_start(nodes)) == 0)
goto loop;
+ start:
g_err << "Starting " << node->node_id << endl;
if (restarter.startNodes(&node->node_id, 1))
return NDBT_FAILED;
@@ -321,7 +328,26 @@ loop:
break;
}
}
+
+ Vector<int> not_started;
+ {
+ ndb_mgm_node_state* node = 0;
+ while((node = select_node_to_start(nodes)))
+ {
+ not_started.push_back(node->node_id);
+ node->node_status = NDB_MGM_NODE_STATUS_STARTED;
+ }
+ }
+ if (not_started.size())
+ {
+ g_err << "Starting stopped nodes " << endl;
+ if (restarter.startNodes(not_started.getBase(), not_started.size()))
+ return NDBT_FAILED;
+ if (restarter.waitClusterStarted())
+ return NDBT_FAILED;
+ }
+
ctx->stopTest();
return NDBT_OK;
}