summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/shardsvr_drop_collection_command.cpp
diff options
context:
space:
mode:
authorJordi Serra Torrens <jordi.serra-torrens@mongodb.com>2021-02-11 11:53:40 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-02-18 11:36:47 +0000
commitaac35501ac8d4cea15e69ad6230d99761682ef65 (patch)
tree697a8c5fdd8059758d66b5dc7033ab6c05618c14 /src/mongo/db/s/shardsvr_drop_collection_command.cpp
parent0e6950610ce228b302770fecd06c6159659d614a (diff)
downloadmongo-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.cpp9
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(