diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2021-05-26 09:35:51 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-05-26 19:49:04 +0000 |
commit | f1090ddbcc24bf61bdadc937c8bdd483878b49cf (patch) | |
tree | 2eefe5168d92e76724fa1ff11465124e2f21af74 /src | |
parent | 2157b103fc2848ae8bf94e9450b752b6d1547863 (diff) | |
download | mongo-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.cpp | 4 |
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; }); |