diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2006-03-22 11:44:31 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2006-03-22 11:44:31 +0100 |
commit | 19340f2242443ec54101d7fd518be47211ed0f15 (patch) | |
tree | f085354e9003c9a1df81f52da01b55b03754a54d /ndb/test | |
parent | 058019f66cdfefcdaa179f011c9c9a10ee0d10df (diff) | |
download | mariadb-git-19340f2242443ec54101d7fd518be47211ed0f15.tar.gz |
ndb - bug#18414
Fix timeout during ABORT when ZABORT_TIMEOUT_BREAK is outstanding
ndb/src/kernel/blocks/ERROR_codes.txt:
New error code
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
remove dumping of LCP info during NF
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Fix timeout during ABORT when ZABORT_TIMEOUT_BREAK is outstanding
ndb/test/ndbapi/testNodeRestart.cpp:
Add testcase for bug18414
ndb/test/ndbapi/testTimeout.cpp:
Fix error code checking
ndb/test/run-test/daily-basic-tests.txt:
Add testcase for bug18414
Diffstat (limited to 'ndb/test')
-rw-r--r-- | ndb/test/ndbapi/testNodeRestart.cpp | 73 | ||||
-rw-r--r-- | ndb/test/ndbapi/testTimeout.cpp | 7 | ||||
-rw-r--r-- | ndb/test/run-test/daily-basic-tests.txt | 4 |
3 files changed, 82 insertions, 2 deletions
diff --git a/ndb/test/ndbapi/testNodeRestart.cpp b/ndb/test/ndbapi/testNodeRestart.cpp index eebd631af94..cc2998ff73a 100644 --- a/ndb/test/ndbapi/testNodeRestart.cpp +++ b/ndb/test/ndbapi/testNodeRestart.cpp @@ -581,6 +581,73 @@ runBug16772(NDBT_Context* ctx, NDBT_Step* step){ return ret ? NDBT_OK : NDBT_FAILED; } +int +runBug18414(NDBT_Context* ctx, NDBT_Step* step){ + + NdbRestarter restarter; + if (restarter.getNumDbNodes() < 2) + { + ctx->stopTest(); + return NDBT_OK; + } + + Ndb* pNdb = GETNDB(step); + HugoOperations hugoOps(*ctx->getTab()); + HugoTransactions hugoTrans(*ctx->getTab()); + int loop = 0; + do + { + if(hugoOps.startTransaction(pNdb) != 0) + goto err; + + if(hugoOps.pkUpdateRecord(pNdb, 0, 128, rand()) != 0) + goto err; + + if(hugoOps.execute_NoCommit(pNdb) != 0) + goto err; + + int node1 = hugoOps.getTransaction()->getConnectedNodeId(); + int node2 = restarter.getRandomNodeSameNodeGroup(node1, rand()); + + if (node1 == -1 || node2 == -1) + break; + + if (loop & 1) + { + if (restarter.insertErrorInNode(node1, 8050)) + goto err; + } + + if (restarter.insertErrorInNode(node2, 5003)) + goto err; + + int res= hugoOps.execute_Rollback(pNdb); + + if (restarter.waitNodesNoStart(&node2, 1) != 0) + goto err; + + if (restarter.insertErrorInAllNodes(0)) + goto err; + + if (restarter.startNodes(&node2, 1) != 0) + goto err; + + if (restarter.waitClusterStarted() != 0) + goto err; + + if (hugoTrans.scanUpdateRecords(pNdb, 128) != 0) + goto err; + + hugoOps.closeTransaction(pNdb); + + } while(++loop < 5); + + return NDBT_OK; + +err: + hugoOps.closeTransaction(pNdb); + return NDBT_FAILED; +} NDBT_TESTSUITE(testNodeRestart); TESTCASE("NoLoad", @@ -870,6 +937,12 @@ TESTCASE("Bug16772", "Test bug with restarting before NF handling is complete"){ STEP(runBug16772); } +TESTCASE("Bug18414", + "Test bug with NF during NR"){ + INITIALIZER(runLoadTable); + STEP(runBug18414); + FINALIZER(runClearTable); +} NDBT_TESTSUITE_END(testNodeRestart); int main(int argc, const char** argv){ diff --git a/ndb/test/ndbapi/testTimeout.cpp b/ndb/test/ndbapi/testTimeout.cpp index 25392698642..957fcd1d1e7 100644 --- a/ndb/test/ndbapi/testTimeout.cpp +++ b/ndb/test/ndbapi/testTimeout.cpp @@ -173,8 +173,11 @@ int runTimeoutTrans(NDBT_Context* ctx, NDBT_Step* step){ NdbSleep_MilliSleep(sleep); // Expect that transaction has timed-out - CHECK(hugoOps.execute_Commit(pNdb) == 237); - + int ret = hugoOps.execute_Commit(pNdb); + CHECK(ret != 0); + NdbError err = pNdb->getNdbError(ret); + CHECK(err.classification == NdbError::TimeoutExpired); + } while(false); hugoOps.closeTransaction(pNdb); diff --git a/ndb/test/run-test/daily-basic-tests.txt b/ndb/test/run-test/daily-basic-tests.txt index 0533d585a41..b11e4479a57 100644 --- a/ndb/test/run-test/daily-basic-tests.txt +++ b/ndb/test/run-test/daily-basic-tests.txt @@ -458,6 +458,10 @@ max-time: 500 cmd: testSystemRestart args: -n Bug18385 T1 +max-time: 500 +cmd: testNodeRestart +args: -n Bug18414 T1 + # OLD FLEX max-time: 500 cmd: flexBench |