diff options
author | Gregory Wlodarek <gregory.wlodarek@mongodb.com> | 2021-02-02 03:11:13 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-02-03 21:32:58 +0000 |
commit | 812956d932fcfaac9dd112c857adbf94e29f992c (patch) | |
tree | ae0db01f69088dcebec3d38c44a6b25447edcb23 /src | |
parent | eacd71cf2fddc9f4767d929c74f1669b7d79ddd2 (diff) | |
download | mongo-812956d932fcfaac9dd112c857adbf94e29f992c.tar.gz |
SERVER-53986 Validate skips record store traversal on empty record stores
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/catalog/validate_adaptor.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/mongo/db/catalog/validate_adaptor.cpp b/src/mongo/db/catalog/validate_adaptor.cpp index ada9feeb27c..2bd6d5bb4d0 100644 --- a/src/mongo/db/catalog/validate_adaptor.cpp +++ b/src/mongo/db/catalog/validate_adaptor.cpp @@ -419,6 +419,12 @@ void ValidateAdaptor::traverseRecordStore(OperationContext* opCtx, long long nInvalid = 0; long long numCorruptRecordsSizeBytes = 0; + ON_BLOCK_EXIT([&]() { + output->appendNumber("nInvalidDocuments", nInvalid); + output->appendNumber("nrecords", _numRecords); + _progress->finished(); + }); + results->valid = true; RecordId prevRecordId; @@ -437,6 +443,11 @@ void ValidateAdaptor::traverseRecordStore(OperationContext* opCtx, _progress.set(CurOp::get(opCtx)->setProgress_inlock(curopMessage, totalRecords)); } + if (_validateState->getFirstRecordId().isNull()) { + // The record store is empty if the first RecordId isn't initialized. + return; + } + bool corruptRecordsSizeLimitWarning = false; const std::unique_ptr<SeekableRecordThrottleCursor>& traverseRecordStoreCursor = _validateState->getTraverseRecordStoreCursor(); @@ -538,11 +549,6 @@ void ValidateAdaptor::traverseRecordStore(OperationContext* opCtx, _validateState->getCollection()->getRecordStore()->updateStatsAfterRepair( opCtx, _numRecords, dataSizeTotal); } - - _progress->finished(); - - output->appendNumber("nInvalidDocuments", nInvalid); - output->appendNumber("nrecords", _numRecords); } void ValidateAdaptor::validateIndexKeyCount(const IndexCatalogEntry* index, |