diff options
author | unknown <joreland@mysql.com> | 2004-12-21 08:40:01 +0100 |
---|---|---|
committer | unknown <joreland@mysql.com> | 2004-12-21 08:40:01 +0100 |
commit | 10ea49c7186143b5fabea97f8be5a4c93c1e0ae3 (patch) | |
tree | c81428cf7c4012d7bfb046e93b87ef1bcf63a9e7 /ndb/test | |
parent | b4c941bd7d6814964c0297bf799179f4a980d225 (diff) | |
download | mariadb-git-10ea49c7186143b5fabea97f8be5a4c93c1e0ae3.tar.gz |
ndb - testIndex -n NFNR3
ndb/test/ndbapi/testIndex.cpp:
Use stop and wait to capture error during restart
ndb/test/src/UtilTransactions.cpp:
Add extra check for readRowFromIndex failure due to loosing of locks
in scan
Diffstat (limited to 'ndb/test')
-rw-r--r-- | ndb/test/ndbapi/testIndex.cpp | 9 | ||||
-rw-r--r-- | ndb/test/src/UtilTransactions.cpp | 23 |
2 files changed, 26 insertions, 6 deletions
diff --git a/ndb/test/ndbapi/testIndex.cpp b/ndb/test/ndbapi/testIndex.cpp index 25991ac375f..3526326b680 100644 --- a/ndb/test/ndbapi/testIndex.cpp +++ b/ndb/test/ndbapi/testIndex.cpp @@ -1277,7 +1277,7 @@ TESTCASE("CreateLoadDrop_O", TESTCASE("NFNR1", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("LoggedIndexes", (unsigned)0); - //TC_PROPERTY("Threads", 2); + TC_PROPERTY("PauseThreads", 2); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(runLoadTable); @@ -1292,6 +1292,7 @@ TESTCASE("NFNR1_O", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("OrderedIndex", 1); TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 2); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(runLoadTable); @@ -1305,6 +1306,7 @@ TESTCASE("NFNR1_O", TESTCASE("NFNR2", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 2); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(createPkIndex); @@ -1321,6 +1323,7 @@ TESTCASE("NFNR2_O", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("OrderedIndex", 1); TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 2); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(createPkIndex); @@ -1336,6 +1339,7 @@ TESTCASE("NFNR2_O", TESTCASE("NFNR3", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 2); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(createPkIndex); @@ -1351,6 +1355,7 @@ TESTCASE("NFNR3_O", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("OrderedIndex", 1); TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 2); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(createPkIndex); @@ -1365,6 +1370,7 @@ TESTCASE("NFNR3_O", TESTCASE("NFNR4", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 4); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(createPkIndex); @@ -1383,6 +1389,7 @@ TESTCASE("NFNR4_O", "Test that indexes are correctly maintained during node fail and node restart"){ TC_PROPERTY("OrderedIndex", 1); TC_PROPERTY("LoggedIndexes", (unsigned)0); + TC_PROPERTY("PauseThreads", 4); INITIALIZER(runClearTable); INITIALIZER(createRandomIndex); INITIALIZER(createPkIndex); diff --git a/ndb/test/src/UtilTransactions.cpp b/ndb/test/src/UtilTransactions.cpp index f4ac466820f..a7c9751ed09 100644 --- a/ndb/test/src/UtilTransactions.cpp +++ b/ndb/test/src/UtilTransactions.cpp @@ -629,7 +629,7 @@ UtilTransactions::scanAndCompareUniqueIndex(Ndb* pNdb, parallelism = 1; while (true){ - +restart: if (retryAttempt >= retryMax){ g_info << "ERROR: has retried this operation " << retryAttempt << " times, failing!" << endl; @@ -719,11 +719,26 @@ UtilTransactions::scanAndCompareUniqueIndex(Ndb* pNdb, // ndbout << row.c_str().c_str() << endl; - if (readRowFromTableAndIndex(pNdb, pTrans, pIndex, row) != NDBT_OK){ + + while((eof= pOp->nextResult(false)) == 0); + if(eof == 2) + eof = pOp->nextResult(true); // this should give -1 + if(eof == -1) + { + const NdbError err = pTrans->getNdbError(); + + if (err.status == NdbError::TemporaryError){ + ERR(err); + pNdb->closeTransaction(pTrans); + NdbSleep_MilliSleep(50); + retryAttempt++; + goto restart; + } + } pNdb->closeTransaction(pTrans); return NDBT_FAILED; } @@ -736,7 +751,6 @@ UtilTransactions::scanAndCompareUniqueIndex(Ndb* pNdb, pNdb->closeTransaction(pTrans); NdbSleep_MilliSleep(50); retryAttempt++; - rows--; continue; } ERR(err); @@ -811,7 +825,6 @@ UtilTransactions::readRowFromTableAndIndex(Ndb* pNdb, check = pOp->readTuple(); if( check == -1 ) { ERR(pTrans1->getNdbError()); - pNdb->closeTransaction(pTrans1); goto close_all; } @@ -943,7 +956,7 @@ UtilTransactions::readRowFromTableAndIndex(Ndb* pNdb, #if VERBOSE printf("\n"); #endif - + scanTrans->refresh(); check = pTrans1->execute(Commit); if( check == -1 ) { const NdbError err = pTrans1->getNdbError(); |