summaryrefslogtreecommitdiff
path: root/ndb/test/ndbapi/testNodeRestart.cpp
diff options
context:
space:
mode:
authorunknown <joreland@mysql.com>2004-10-11 09:20:04 +0200
committerunknown <joreland@mysql.com>2004-10-11 09:20:04 +0200
commit0db2536e144602eff1754bac31cb7a63194b9f51 (patch)
tree7b5ad106dfec7389788e92964209c0a04419bf46 /ndb/test/ndbapi/testNodeRestart.cpp
parent3b783caf9104316c08e39443cb33a1f06917a4b8 (diff)
downloadmariadb-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.cpp34
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);