Don't fail ConsistencyCheck on first mismatch
ConsistencyCheck fails when it sees the first corrupted shard. We may want to keep it running so that we can see all the corrupted data in logs.
This commit is contained in:
parent
ada51ff12b
commit
aa99b89d53
|
@ -393,6 +393,7 @@ ACTOR Future<bool> checkDataConsistency(Database cx,
|
|||
state double rateLimiterStartTime = now();
|
||||
state int64_t bytesReadInthisRound = 0;
|
||||
state bool resume = !(restart || shuffleShards);
|
||||
state bool testResult = true;
|
||||
|
||||
state double dbSize = 100e12;
|
||||
if (g_network->isSimulated()) {
|
||||
|
@ -710,7 +711,7 @@ ACTOR Future<bool> checkDataConsistency(Database cx,
|
|||
(!storageServerInterfaces[j].isTss() &&
|
||||
!storageServerInterfaces[firstValidServer].isTss())) {
|
||||
testFailure("Data inconsistent", performQuiescentChecks, true);
|
||||
return false;
|
||||
testResult = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -949,7 +950,7 @@ ACTOR Future<bool> checkDataConsistency(Database cx,
|
|||
}
|
||||
|
||||
*bytesReadInPrevRound = bytesReadInthisRound;
|
||||
return true;
|
||||
return testResult;
|
||||
}
|
||||
|
||||
ACTOR Future<Void> runDataValidationCheck(ConsistencyScanData* self) {
|
||||
|
|
|
@ -394,6 +394,7 @@ struct ConsistencyCheckWorkload : TestWorkload {
|
|||
state Standalone<VectorRef<KeyValueRef>>
|
||||
serverList; // "\xff/serverList/[[serverID]]" := "[[StorageServerInterface]]"
|
||||
state Standalone<VectorRef<KeyValueRef>> serverTag; // "\xff/serverTag/[[serverID]]" = "[[Tag]]"
|
||||
state bool testResult = true;
|
||||
|
||||
std::vector<Future<bool>> cacheResultsPromise;
|
||||
cacheResultsPromise.push_back(self->fetchKeyValuesFromSS(cx, self, storageCacheKeys, cacheKeyPromise, true));
|
||||
|
@ -581,7 +582,7 @@ struct ConsistencyCheckWorkload : TestWorkload {
|
|||
for (j = 0; j < keyValueFutures.size(); j++) {
|
||||
ErrorOr<GetKeyValuesReply> rangeResult = keyValueFutures[j].get();
|
||||
// if (rangeResult.isError()) {
|
||||
// throw rangeResult.getError();
|
||||
// throw rangeResult.getError();
|
||||
// }
|
||||
|
||||
// Compare the results with other storage servers
|
||||
|
@ -709,7 +710,7 @@ struct ConsistencyCheckWorkload : TestWorkload {
|
|||
.detail("MatchingKVPairs", matchingKVPairs);
|
||||
|
||||
self->testFailure("Data inconsistent", true);
|
||||
return false;
|
||||
testResult = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -755,7 +756,7 @@ struct ConsistencyCheckWorkload : TestWorkload {
|
|||
.detail("BytesRead", bytesReadInRange);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return testResult;
|
||||
}
|
||||
|
||||
// Directly fetch key/values from storage servers through GetKeyValuesRequest
|
||||
|
|
Loading…
Reference in New Issue