diff options
author | jannaerin <golden.janna@gmail.com> | 2021-02-09 19:59:22 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-02-10 20:36:01 +0000 |
commit | cccf2ee27bcf254f4533d5ec38b584d24fbb4437 (patch) | |
tree | bbc5d81efcaa9ef532620786e9890e4081ce7757 /src/mongo/db/s/collection_metadata.cpp | |
parent | c0f5f18e8013dd81512865d9745e1eb8f3a20140 (diff) | |
download | mongo-cccf2ee27bcf254f4533d5ec38b584d24fbb4437.tar.gz |
SERVER-52771 Disallow createIndexes, dropIndexes, and collMod on donor shards during resharding
Diffstat (limited to 'src/mongo/db/s/collection_metadata.cpp')
-rw-r--r-- | src/mongo/db/s/collection_metadata.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/s/collection_metadata.cpp b/src/mongo/db/s/collection_metadata.cpp index c9c1a9f9a3a..d3b10873ed0 100644 --- a/src/mongo/db/s/collection_metadata.cpp +++ b/src/mongo/db/s/collection_metadata.cpp @@ -38,6 +38,7 @@ #include "mongo/bson/simple_bsonobj_comparator.h" #include "mongo/bson/util/builder.h" #include "mongo/db/bson/dotted_path_support.h" +#include "mongo/logv2/log.h" #include "mongo/s/catalog/type_chunk.h" #include "mongo/util/str.h" @@ -93,6 +94,15 @@ boost::optional<ShardKeyPattern> CollectionMetadata::getReshardingKeyIfShouldFor return ShardKeyPattern(donorFields->getReshardingKey()); } +void CollectionMetadata::throwIfReshardingInProgress(NamespaceString const& nss) const { + if (isSharded() && getReshardingFields()) { + LOGV2(5277122, "reshardCollection in progress", "namespace"_attr = nss.toString()); + + uasserted(ErrorCodes::ReshardCollectionInProgress, + "reshardCollection is in progress for namespace " + nss.toString()); + } +} + bool CollectionMetadata::disallowWritesForResharding(const UUID& currentCollectionUUID) const { if (!isSharded()) return false; |