diff options
author | unknown <joreland@mysql.com> | 2004-10-11 09:20:04 +0200 |
---|---|---|
committer | unknown <joreland@mysql.com> | 2004-10-11 09:20:04 +0200 |
commit | 0db2536e144602eff1754bac31cb7a63194b9f51 (patch) | |
tree | 7b5ad106dfec7389788e92964209c0a04419bf46 /ndb/test/ndbapi/testNodeRestart.cpp | |
parent | 3b783caf9104316c08e39443cb33a1f06917a4b8 (diff) | |
download | mariadb-git-0db2536e144602eff1754bac31cb7a63194b9f51.tar.gz |
wl1801 - Support for handling NF during dirty read
ndb/include/ndbapi/NdbConnection.hpp:
Support for handling NF during dirty read
ndb/include/ndbapi/NdbReceiver.hpp:
Support for handling NF during dirty read
ndb/src/ndbapi/NdbConnection.cpp:
Support for handling NF during dirty read
ndb/src/ndbapi/NdbReceiver.cpp:
Support for handling NF during dirty read
ndb/src/ndbapi/Ndbif.cpp:
Support for handling NF during dirty read
ndb/src/ndbapi/ndberror.c:
Support for handling NF during dirty read
ndb/test/ndbapi/testNodeRestart.cpp:
Support for handling NF during dirty read
Diffstat (limited to 'ndb/test/ndbapi/testNodeRestart.cpp')
-rw-r--r-- | ndb/test/ndbapi/testNodeRestart.cpp | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/ndb/test/ndbapi/testNodeRestart.cpp b/ndb/test/ndbapi/testNodeRestart.cpp index 0ba0d170984..fd841e6ede5 100644 --- a/ndb/test/ndbapi/testNodeRestart.cpp +++ b/ndb/test/ndbapi/testNodeRestart.cpp @@ -299,9 +299,11 @@ int runRestarts(NDBT_Context* ctx, NDBT_Step* step){ int runDirtyRead(NDBT_Context* ctx, NDBT_Step* step){ int result = NDBT_OK; int loops = ctx->getNumLoops(); + int records = ctx->getNumRecords(); NdbRestarter restarter; - HugoTransactions hugoTrans(*ctx->getTab()); - + HugoOperations hugoOps(*ctx->getTab()); + Ndb* pNdb = GETNDB(step); + int i = 0; while(i<loops && result != NDBT_FAILED && !ctx->isTestStopped()){ g_info << i << ": "; @@ -312,14 +314,34 @@ int runDirtyRead(NDBT_Context* ctx, NDBT_Step* step){ restarter.insertErrorInNode(nodeId, 5041); restarter.insertErrorInAllNodes(8048); - if (hugoTrans.pkReadRecords(GETNDB(step), 1, 1, - NdbOperation::LM_CommittedRead) != 0) - { - return NDBT_FAILED; + for(int j = 0; j<records; j++){ + if(hugoOps.startTransaction(pNdb) != 0) + return NDBT_FAILED; + + if(hugoOps.pkReadRecord(pNdb, j, 1, NdbOperation::LM_CommittedRead) != 0) + goto err; + + int res; + if((res = hugoOps.execute_Commit(pNdb)) == 4119) + goto done; + + if(res != 0) + goto err; + + if(hugoOps.closeTransaction(pNdb) != 0) + return NDBT_FAILED; } +done: + if(hugoOps.closeTransaction(pNdb) != 0) + return NDBT_FAILED; + i++; + restarter.waitClusterStarted(60) ; } return result; +err: + hugoOps.closeTransaction(pNdb); + return NDBT_FAILED; } NDBT_TESTSUITE(testNodeRestart); |