summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/shardsvr_reshard_collection_command.cpp')
-rw-r--r--src/mongo/db/s/shardsvr_reshard_collection_command.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/s/shardsvr_reshard_collection_command.cpp b/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
index fa6dbad0907..04c8aa85521 100644
--- a/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
+++ b/src/mongo/db/s/shardsvr_reshard_collection_command.cpp
@@ -33,6 +33,7 @@
#include "mongo/db/auth/authorization_session.h"
#include "mongo/db/commands.h"
+#include "mongo/db/s/dist_lock_manager.h"
#include "mongo/db/s/reshard_collection_coordinator.h"
#include "mongo/db/s/sharding_state.h"
#include "mongo/s/request_types/sharded_ddl_commands_gen.h"
@@ -76,6 +77,13 @@ public:
"Resharding is not supported for this version, please update the FCV to latest.",
!serverGlobalParams.featureCompatibility.isUpgradingOrDowngrading());
+ DistLockManager::ScopedDistLock dbDistLock(
+ uassertStatusOK(DistLockManager::get(opCtx)->lock(
+ opCtx, ns().db(), "reshardCollection", DistLockManager::kDefaultLockTimeout)));
+ DistLockManager::ScopedDistLock collDistLock(
+ uassertStatusOK(DistLockManager::get(opCtx)->lock(
+ opCtx, ns().ns(), "reshardCollection", DistLockManager::kDefaultLockTimeout)));
+
auto reshardCollectionCoordinator =
std::make_shared<ReshardCollectionCoordinator>(opCtx, request());
reshardCollectionCoordinator->run(opCtx).get(opCtx);