summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2021-05-26 09:35:51 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-26 19:49:04 +0000
commitf1090ddbcc24bf61bdadc937c8bdd483878b49cf (patch)
tree2eefe5168d92e76724fa1ff11465124e2f21af74 /src
parent2157b103fc2848ae8bf94e9450b752b6d1547863 (diff)
downloadmongo-f1090ddbcc24bf61bdadc937c8bdd483878b49cf.tar.gz
SERVER-57205 Always write all three validator variables in the validator setter functions
This fixes a multiversion bug where a data inconsistency is detected because the defaults are not always written depending on version.
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/catalog/collection_impl.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/catalog/collection_impl.cpp b/src/mongo/db/catalog/collection_impl.cpp
index f8f10d1197f..5cd4440a59b 100644
--- a/src/mongo/db/catalog/collection_impl.cpp
+++ b/src/mongo/db/catalog/collection_impl.cpp
@@ -1507,7 +1507,9 @@ Status CollectionImpl::setValidationLevel(OperationContext* opCtx, ValidationLev
}
_writeMetadata(opCtx, [&](BSONCollectionCatalogEntry::MetaData& md) {
+ md.options.validator = _validator.validatorDoc;
md.options.validationLevel = storedValidationLevel;
+ md.options.validationAction = validationActionOrDefault(md.options.validationAction);
});
return Status::OK();
@@ -1531,6 +1533,8 @@ Status CollectionImpl::setValidationAction(OperationContext* opCtx,
}
_writeMetadata(opCtx, [&](BSONCollectionCatalogEntry::MetaData& md) {
+ md.options.validator = _validator.validatorDoc;
+ md.options.validationLevel = validationLevelOrDefault(md.options.validationLevel);
md.options.validationAction = storedValidationAction;
});