diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2007-03-20 16:26:51 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2007-03-20 16:26:51 +0100 |
commit | 4384879603faa6fafaf1ca5ce952c666968c0f6e (patch) | |
tree | 401411edcfa72bff5a120a8b32e6060b8852ceaf /ndb/test/ndbapi/testNodeRestart.cpp | |
parent | 1dd19f0ca8e17286417ed7627a1c107608d4c801 (diff) | |
parent | 26afc93a0e4154b797adb0bcb0c85cf7f4f541e1 (diff) | |
download | mariadb-git-4384879603faa6fafaf1ca5ce952c666968c0f6e.tar.gz |
Merge perch.ndb.mysql.com:/home/jonas/src/50-work
into perch.ndb.mysql.com:/home/jonas/src/mysql-5.0-ndb
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupGen.cpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
ndb/test/ndbapi/testNodeRestart.cpp:
Auto merged
ndb/test/run-test/daily-basic-tests.txt:
Auto merged
ndb/test/src/UtilTransactions.cpp:
Auto merged
Diffstat (limited to 'ndb/test/ndbapi/testNodeRestart.cpp')
-rw-r--r-- | ndb/test/ndbapi/testNodeRestart.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/ndb/test/ndbapi/testNodeRestart.cpp b/ndb/test/ndbapi/testNodeRestart.cpp index a5e787dfd0e..26c8fe35011 100644 --- a/ndb/test/ndbapi/testNodeRestart.cpp +++ b/ndb/test/ndbapi/testNodeRestart.cpp @@ -1124,6 +1124,101 @@ runBug26481(NDBT_Context* ctx, NDBT_Step* step) return NDBT_OK; } +int +runBug27003(NDBT_Context* ctx, NDBT_Step* step) +{ + int result = NDBT_OK; + int loops = ctx->getNumLoops(); + int records = ctx->getNumRecords(); + NdbRestarter res; + + static const int errnos[] = { 4025, 4026, 4027, 4028, 0 }; + + int node = res.getRandomNotMasterNodeId(rand()); + ndbout_c("node: %d", node); + if (res.restartOneDbNode(node, false, true, true)) + return NDBT_FAILED; + + Uint32 pos = 0; + for (Uint32 i = 0; i<loops; i++) + { + while (errnos[pos] != 0) + { + ndbout_c("Tesing err: %d", errnos[pos]); + + if (res.waitNodesNoStart(&node, 1)) + return NDBT_FAILED; + + if (res.insertErrorInNode(node, 1000)) + return NDBT_FAILED; + + if (res.insertErrorInNode(node, errnos[pos])) + return NDBT_FAILED; + + int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 }; + if (res.dumpStateOneNode(node, val2, 2)) + return NDBT_FAILED; + + res.startNodes(&node, 1); + res.waitNodesStartPhase(&node, 1, 2); + pos++; + } + pos = 0; + } + + if (res.waitNodesNoStart(&node, 1)) + return NDBT_FAILED; + + res.startNodes(&node, 1); + if (res.waitClusterStarted()) + return NDBT_FAILED; + + return NDBT_OK; +} + + +int +runBug27283(NDBT_Context* ctx, NDBT_Step* step) +{ + int result = NDBT_OK; + int loops = ctx->getNumLoops(); + int records = ctx->getNumRecords(); + NdbRestarter res; + + if (res.getNumDbNodes() < 2) + { + return NDBT_OK; + } + + static const int errnos[] = { 7181, 7182, 0 }; + + Uint32 pos = 0; + for (Uint32 i = 0; i<loops; i++) + { + while (errnos[pos] != 0) + { + int master = res.getMasterNodeId(); + int next = res.getNextMasterNodeId(master); + int next2 = res.getNextMasterNodeId(next); + + int node = (i & 1) ? next : next2; + ndbout_c("Tesing err: %d", errnos[pos]); + if (res.insertErrorInNode(next, errnos[pos])) + return NDBT_FAILED; + + NdbSleep_SecSleep(3); + + if (res.waitClusterStarted()) + return NDBT_FAILED; + + pos++; + } + pos = 0; + } + + return NDBT_OK; +} + NDBT_TESTSUITE(testNodeRestart); TESTCASE("NoLoad", "Test that one node at a time can be stopped and then restarted "\ @@ -1451,6 +1546,12 @@ TESTCASE("Bug26457", ""){ TESTCASE("Bug26481", ""){ INITIALIZER(runBug26481); } +TESTCASE("Bug27003", ""){ + INITIALIZER(runBug27003); +} +TESTCASE("Bug27283", ""){ + INITIALIZER(runBug27283); +} NDBT_TESTSUITE_END(testNodeRestart); int main(int argc, const char** argv){ |