From: Date: September 29 2007 11:10am Subject: bk commit into 5.1 tree (jonas:1.2511) BUG#30975 List-Archive: http://lists.mysql.com/commits/34673 X-Bug: 30975 Message-Id: <20070929091017.5F20434064B@perch.ndb.mysql.com> Below is the list of changes that have just been committed into a local 5.1 repository of jonas. When jonas does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-09-29 11:10:12+02:00, jonas@stripped +2 -0 ndb - bug#30975 add even more tests storage/ndb/test/ndbapi/testSystemRestart.cpp@stripped, 2007-09-29 11:10:09+02:00, jonas@stripped +109 -21 add more tests... storage/ndb/test/run-test/daily-basic-tests.txt@stripped, 2007-09-29 11:10:09+02:00, jonas@stripped +32 -0 add more tests # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: jonas # Host: perch.ndb.mysql.com # Root: /home/jonas/src/51-telco-gca --- 1.79/storage/ndb/test/run-test/daily-basic-tests.txt 2007-09-29 11:10:17 +02:00 +++ 1.80/storage/ndb/test/run-test/daily-basic-tests.txt 2007-09-29 11:10:17 +02:00 @@ -876,29 +876,61 @@ max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_1b D1 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_1 D2 max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_1b D2 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_1_LCP D1 max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_1b_LCP D1 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_1_LCP D2 max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_1b_LCP D2 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_2 D1 max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_2b D1 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_2 D2 max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_2b D2 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_2_LCP D1 max-time: 1500 cmd: testSystemRestart +args: -n SR_DD_2b_LCP D1 + +max-time: 1500 +cmd: testSystemRestart args: -n SR_DD_2_LCP D2 + +max-time: 1500 +cmd: testSystemRestart +args: -n SR_DD_2b_LCP D2 --- 1.14/storage/ndb/test/ndbapi/testSystemRestart.cpp 2007-09-29 11:10:17 +02:00 +++ 1.15/storage/ndb/test/ndbapi/testSystemRestart.cpp 2007-09-29 11:10:17 +02:00 @@ -1220,6 +1220,30 @@ return result; } +int +runStopper(NDBT_Context* ctx, NDBT_Step* step) +{ + NdbRestarter restarter; + Uint32 stop = 0; +loop: + while (!ctx->isTestStopped() && + ((stop = ctx->getProperty("StopAbort", Uint32(0))) == 0)) + { + NdbSleep_MilliSleep(30); + } + + if (ctx->isTestStopped()) + { + return NDBT_OK; + } + + ndbout << "Killing in " << stop << "ms..." << flush; + NdbSleep_MilliSleep(stop); + restarter.restartAll(false, true, true); + ctx->setProperty("StopAbort", Uint32(0)); + goto loop; +} + int runSR_DD_1(NDBT_Context* ctx, NDBT_Step* step) { Ndb* pNdb = GETNDB(step); @@ -1229,6 +1253,7 @@ NdbRestarter restarter; NdbBackup backup(GETNDB(step)->getNodeId()+1); bool lcploop = ctx->getProperty("LCP", (unsigned)0); + bool all = ctx->getProperty("ALL", (unsigned)0); Uint32 i = 1; Uint32 backupId; @@ -1254,11 +1279,18 @@ ndbout << "Loading records..." << startFrom << endl; CHECK(hugoTrans.loadTable(pNdb, startFrom) == 0); - ndbout << "Making " << nodeId << " crash" << endl; - int kill[] = { 9999, 1000, 3000 }; - CHECK(restarter.dumpStateOneNode(nodeId, val, 2) == 0); - CHECK(restarter.dumpStateOneNode(nodeId, kill, 3) == 0); - + if (!all) + { + ndbout << "Making " << nodeId << " crash" << endl; + int kill[] = { 9999, 1000, 3000 }; + CHECK(restarter.dumpStateOneNode(nodeId, val, 2) == 0); + CHECK(restarter.dumpStateOneNode(nodeId, kill, 3) == 0); + } + else + { + ndbout << "Crashing cluster" << endl; + ctx->setProperty("StopAbort", 1000 + rand() % (3000 - 1000)); + } Uint64 end = NdbTick_CurrentMillisecond() + 4000; Uint32 row = startFrom; do { @@ -1268,11 +1300,17 @@ row += 1000; } while (NdbTick_CurrentMillisecond() < end); - ndbout << "Waiting for " << nodeId << " to restart" << endl; - CHECK(restarter.waitNodesNoStart(&nodeId, 1) == 0); - - ndbout << "Restarting cluster" << endl; - CHECK(restarter.restartAll(false, true, true) == 0); + if (!all) + { + ndbout << "Waiting for " << nodeId << " to restart" << endl; + CHECK(restarter.waitNodesNoStart(&nodeId, 1) == 0); + ndbout << "Restarting cluster" << endl; + CHECK(restarter.restartAll(false, true, true) == 0); + } + else + { + ndbout << "Waiting for cluster to restart" << endl; + } CHECK(restarter.waitClusterNoStart() == 0); CHECK(restarter.startAll() == 0); CHECK(restarter.waitClusterStarted() == 0); @@ -1297,7 +1335,7 @@ } ndbout << "runSR_DD_1 finished" << endl; - + ctx->stopTest(); return result; } @@ -1311,6 +1349,7 @@ NdbRestarter restarter; NdbBackup backup(GETNDB(step)->getNodeId()+1); bool lcploop = ctx->getProperty("LCP", (unsigned)0); + bool all = ctx->getProperty("ALL", (unsigned)0); Uint32 i = 1; Uint32 backupId; @@ -1331,10 +1370,18 @@ int nodeId = restarter.getDbNodeId(rand() % restarter.getNumDbNodes()); - ndbout << "Making " << nodeId << " crash" << endl; - int kill[] = { 9999, 3000, 10000 }; - CHECK(restarter.dumpStateOneNode(nodeId, val, 2) == 0); - CHECK(restarter.dumpStateOneNode(nodeId, kill, 3) == 0); + if (!all) + { + ndbout << "Making " << nodeId << " crash" << endl; + int kill[] = { 9999, 3000, 10000 }; + CHECK(restarter.dumpStateOneNode(nodeId, val, 2) == 0); + CHECK(restarter.dumpStateOneNode(nodeId, kill, 3) == 0); + } + else + { + ndbout << "Crashing cluster" << endl; + ctx->setProperty("StopAbort", 1000 + rand() % (3000 - 1000)); + } Uint64 end = NdbTick_CurrentMillisecond() + 11000; Uint32 row = startFrom; @@ -1346,11 +1393,18 @@ break; } while (NdbTick_CurrentMillisecond() < end); - ndbout << "Waiting for " << nodeId << " to restart" << endl; - CHECK(restarter.waitNodesNoStart(&nodeId, 1) == 0); - - ndbout << "Restarting cluster" << endl; - CHECK(restarter.restartAll(false, true, true) == 0); + if (!all) + { + ndbout << "Waiting for " << nodeId << " to restart" << endl; + CHECK(restarter.waitNodesNoStart(&nodeId, 1) == 0); + ndbout << "Restarting cluster" << endl; + CHECK(restarter.restartAll(false, true, true) == 0); + } + else + { + ndbout << "Waiting for cluster to restart" << endl; + } + CHECK(restarter.waitClusterNoStart() == 0); CHECK(restarter.startAll() == 0); CHECK(restarter.waitClusterStarted() == 0); @@ -1369,7 +1423,7 @@ } ndbout << "runSR_DD_2 finished" << endl; - + ctx->stopTest(); return result; } @@ -1555,12 +1609,29 @@ } TESTCASE("SR_DD_1", "") { + TC_PROPERTY("ALL", 1); + INITIALIZER(runWaitStarted); + STEP(runStopper); + STEP(runSR_DD_1); + FINALIZER(runClearTable); +} +TESTCASE("SR_DD_1b", "") +{ INITIALIZER(runWaitStarted); STEP(runSR_DD_1); FINALIZER(runClearTable); } TESTCASE("SR_DD_1_LCP", "") { + TC_PROPERTY("ALL", 1); + TC_PROPERTY("LCP", 1); + INITIALIZER(runWaitStarted); + STEP(runStopper); + STEP(runSR_DD_1); + FINALIZER(runClearTable); +} +TESTCASE("SR_DD_1b_LCP", "") +{ TC_PROPERTY("LCP", 1); INITIALIZER(runWaitStarted); STEP(runSR_DD_1); @@ -1568,11 +1639,28 @@ } TESTCASE("SR_DD_2", "") { + TC_PROPERTY("ALL", 1); + INITIALIZER(runWaitStarted); + STEP(runStopper); + STEP(runSR_DD_2); + FINALIZER(runClearTable); +} +TESTCASE("SR_DD_2b", "") +{ INITIALIZER(runWaitStarted); STEP(runSR_DD_2); FINALIZER(runClearTable); } TESTCASE("SR_DD_2_LCP", "") +{ + TC_PROPERTY("ALL", 1); + TC_PROPERTY("LCP", 1); + INITIALIZER(runWaitStarted); + STEP(runStopper); + STEP(runSR_DD_2); + FINALIZER(runClearTable); +} +TESTCASE("SR_DD_2b_LCP", "") { TC_PROPERTY("LCP", 1); INITIALIZER(runWaitStarted);