summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/config/configsvr_create_database_command.cpp
diff options
context:
space:
mode:
authorEsha Maharishi <esha.maharishi@mongodb.com>2017-10-12 14:07:26 -0400
committerEsha Maharishi <esha.maharishi@mongodb.com>2017-10-12 18:06:01 -0400
commitba0ee77c61c39b077d0975b7487099c5985c7b18 (patch)
tree5814af9a08cfe80885d519a147bb2264c199bff5 /src/mongo/db/s/config/configsvr_create_database_command.cpp
parent2b10c2876de50302150167aef80b5bf4b6662139 (diff)
downloadmongo-ba0ee77c61c39b077d0975b7487099c5985c7b18.tar.gz
SERVER-30733 make distlocks hierarchical for metadata commands on databases and collections
Diffstat (limited to 'src/mongo/db/s/config/configsvr_create_database_command.cpp')
-rw-r--r--src/mongo/db/s/config/configsvr_create_database_command.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/s/config/configsvr_create_database_command.cpp b/src/mongo/db/s/config/configsvr_create_database_command.cpp
index f752ffa6a18..567216846d9 100644
--- a/src/mongo/db/s/config/configsvr_create_database_command.cpp
+++ b/src/mongo/db/s/config/configsvr_create_database_command.cpp
@@ -115,6 +115,16 @@ public:
// Make sure to force update of any stale metadata
ON_BLOCK_EXIT([opCtx, dbname] { Grid::get(opCtx)->catalogCache()->purgeDatabase(dbname); });
+ // Remove the backwards compatible lock after 3.6 ships.
+ auto const catalogClient = Grid::get(opCtx)->catalogClient();
+ auto backwardsCompatibleDbDistLock = uassertStatusOK(
+ catalogClient->getDistLockManager()->lock(opCtx,
+ dbname + "-movePrimary",
+ "createDatabase",
+ DistLockManager::kDefaultLockTimeout));
+ auto dbDistLock = uassertStatusOK(catalogClient->getDistLockManager()->lock(
+ opCtx, dbname, "createDatabase", DistLockManager::kDefaultLockTimeout));
+
uassertStatusOK(ShardingCatalogManager::get(opCtx)->createDatabase(opCtx, dbname));
return true;