diff options
author | Jordi Serra Torrens <jordi.serra-torrens@mongodb.com> | 2021-02-11 11:53:40 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-02-18 11:36:47 +0000 |
commit | aac35501ac8d4cea15e69ad6230d99761682ef65 (patch) | |
tree | 697a8c5fdd8059758d66b5dc7033ab6c05618c14 /src/mongo/db/s/shardsvr_drop_collection_command.cpp | |
parent | 0e6950610ce228b302770fecd06c6159659d614a (diff) | |
download | mongo-aac35501ac8d4cea15e69ad6230d99761682ef65.tar.gz |
SERVER-53092: Ensure FCV stability while executing DDL critical paths
Diffstat (limited to 'src/mongo/db/s/shardsvr_drop_collection_command.cpp')
-rw-r--r-- | src/mongo/db/s/shardsvr_drop_collection_command.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mongo/db/s/shardsvr_drop_collection_command.cpp b/src/mongo/db/s/shardsvr_drop_collection_command.cpp index 537286b9b73..51fc7c21c82 100644 --- a/src/mongo/db/s/shardsvr_drop_collection_command.cpp +++ b/src/mongo/db/s/shardsvr_drop_collection_command.cpp @@ -34,6 +34,7 @@ #include "mongo/db/auth/authorization_session.h" #include "mongo/db/commands.h" #include "mongo/db/curop.h" +#include "mongo/db/s/dist_lock_manager.h" #include "mongo/db/s/drop_collection_coordinator.h" #include "mongo/db/s/drop_collection_legacy.h" #include "mongo/db/s/sharding_state.h" @@ -75,9 +76,13 @@ public: << opCtx->getWriteConcern().wMode, opCtx->getWriteConcern().wMode == WriteConcernOptions::kMajority); + DistLockManager::ScopedDistLock dbDistLock( + uassertStatusOK(DistLockManager::get(opCtx)->lock( + opCtx, + DistLockManager::kShardingRoutingInfoFormatStabilityLockName, + "dropCollection", + DistLockManager::kDefaultLockTimeout))); bool useNewPath = [&] { - // TODO (SERVER-53092): Use the FCV lock in order to "reserve" operation as running - // in new or legacy mode return feature_flags::gShardingFullDDLSupport.isEnabled( serverGlobalParams.featureCompatibility) && !feature_flags::gDisableIncompleteShardingDDLSupport.isEnabled( |