diff options
author | Eric Milkie <milkie@10gen.com> | 2020-10-26 14:44:49 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-11-30 17:59:32 +0000 |
commit | bd3a0404a63ccc1fc92ed8750b3266d5746e05f2 (patch) | |
tree | aeee52bcd119952917f8f0a2f1963d9d50dcd520 | |
parent | 42f4f48afbafcd6d567d2d31bde71ef757967102 (diff) | |
download | mongo-bd3a0404a63ccc1fc92ed8750b3266d5746e05f2.tar.gz |
SERVER-51652 catch exceptions in validate from parsing invalid index keys
(cherry picked from commit ca65f33c3777678fda17164cc9e9da248469f409)
-rw-r--r-- | src/mongo/db/catalog/validate_adaptor.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mongo/db/catalog/validate_adaptor.cpp b/src/mongo/db/catalog/validate_adaptor.cpp index 54cb62a16ee..f8160f7fb1f 100644 --- a/src/mongo/db/catalog/validate_adaptor.cpp +++ b/src/mongo/db/catalog/validate_adaptor.cpp @@ -258,8 +258,17 @@ void ValidateAdaptor::traverseIndex(OperationContext* opCtx, numKeys++; continue; } + try { + _indexConsistency->addIndexKey(indexEntry->keyString, &indexInfo, indexEntry->loc); + } catch (const DBException& e) { + StringBuilder ss; + ss << "Parsing index key for " << indexInfo.indexName << " recId " << indexEntry->loc + << " threw exception " << e.toString(); + results->errors.push_back(ss.str()); + results->valid = false; + continue; + } - _indexConsistency->addIndexKey(indexEntry->keyString, &indexInfo, indexEntry->loc); _progress->hit(); numKeys++; isFirstEntry = false; |