summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Fuschetto <antonio.fuschetto@mongodb.com>2022-12-20 16:36:02 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-12-20 17:06:36 +0000
commit6b4a45e59574735a779086ec8248c274aac1ee11 (patch)
treefc42733ff6eac63d9ef756626276b03685a56bf9
parent25c62c984a801ef4f8aa00a824c109882a8848c9 (diff)
downloadmongo-6b4a45e59574735a779086ec8248c274aac1ee11.tar.gz
SERVER-71884 Drain ongoing resilient movePrimary operations on FCV downgrade
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
index ea23b56afdc..eb2f021ad4a 100644
--- a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
+++ b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
@@ -444,6 +444,14 @@ private:
void _shardServerPhase1Tasks(OperationContext* opCtx,
multiversion::FeatureCompatibilityVersion actualVersion,
multiversion::FeatureCompatibilityVersion requestedVersion) {
+ // TODO (SERVER-71309): Remove once 7.0 becomes last LTS.
+ if (actualVersion > requestedVersion &&
+ !feature_flags::gResilientMovePrimary.isEnabledOnVersion(requestedVersion)) {
+ ShardingDDLCoordinatorService::getService(opCtx)
+ ->waitForCoordinatorsOfGivenTypeToComplete(opCtx,
+ DDLCoordinatorTypeEnum::kMovePrimary);
+ }
+
// TODO SERVER-68008: Remove collMod draining mechanism after 7.0 becomes last LTS.
if (actualVersion > requestedVersion &&
!feature_flags::gCollModCoordinatorV3.isEnabledOnVersion(requestedVersion)) {