summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEsha Maharishi <esha.maharishi@mongodb.com>2018-12-03 14:58:56 -0500
committerEsha Maharishi <esha.maharishi@mongodb.com>2018-12-05 11:56:41 -0500
commit26bad42994d1536f4d22aad47b0b537c3c5359b2 (patch)
tree4fc2eee9db6a6dd35f79bac27dec26e6c492630a
parentff83812e30f1eb8bbdfb5060f556d92025e4f888 (diff)
downloadmongo-26bad42994d1536f4d22aad47b0b537c3c5359b2.tar.gz
SERVER-37339 Sharding state is set to initialized on Grid before sharding components are fully initialized
-rw-r--r--src/mongo/db/db.cpp2
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/db/db.cpp b/src/mongo/db/db.cpp
index 69471e9e65b..bccf4a86e31 100644
--- a/src/mongo/db/db.cpp
+++ b/src/mongo/db/db.cpp
@@ -561,6 +561,8 @@ ExitCode _initAndListen(int listenPort) {
ShardingCatalogManager::create(
startupOpCtx->getServiceContext(),
makeShardingTaskExecutor(executor::makeNetworkInterface("AddShard-TaskExecutor")));
+
+ Grid::get(startupOpCtx.get())->setShardingInitialized();
} else if (replSettings.usingReplSets()) { // standalone replica set
auto keysCollectionClient = stdx::make_unique<KeysCollectionClientDirect>();
auto keyManager = std::make_shared<KeysCollectionManager>(
diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp
index b24cab09a4c..70aac5722f1 100644
--- a/src/mongo/db/s/sharding_initialization_mongod.cpp
+++ b/src/mongo/db/s/sharding_initialization_mongod.cpp
@@ -133,6 +133,8 @@ void initializeShardingEnvironmentOnShardServer(OperationContext* opCtx,
PeriodicBalancerConfigRefresher::get(opCtx).onShardingInitialization(opCtx->getServiceContext(),
isStandaloneOrPrimary);
+ Grid::get(opCtx)->setShardingInitialized();
+
LOG(0) << "Finished initializing sharding components for "
<< (isStandaloneOrPrimary ? "primary" : "secondary") << " node.";
}
@@ -399,8 +401,6 @@ void initializeGlobalShardingStateForMongoD(OperationContext* opCtx,
replCoord->getMemberState().primary()) {
LogicalTimeValidator::get(opCtx)->enableKeyGenerator(opCtx, true);
}
-
- Grid::get(opCtx)->setShardingInitialized();
}
} // namespace mongo