summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/sharding_initialization_mongod.cpp
diff options
context:
space:
mode:
authorHaley Connelly <haley.connelly@mongodb.com>2020-03-31 17:57:38 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-04-01 19:42:53 +0000
commit08351c1b12f3ca5c9ab99b6628e27d2083278011 (patch)
tree783ca1cb083bdbd10a9ca5b29b3ae9b55e9dbefc /src/mongo/db/s/sharding_initialization_mongod.cpp
parentaf7f1e3a778a201a4bd6a372eb441b0f73b9c2ba (diff)
downloadmongo-08351c1b12f3ca5c9ab99b6628e27d2083278011.tar.gz
SERVER-47169 Call ShardRegistry::updateReplSetHosts() synchronously
Diffstat (limited to 'src/mongo/db/s/sharding_initialization_mongod.cpp')
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp
index 8e8a35de617..741ead68a8b 100644
--- a/src/mongo/db/s/sharding_initialization_mongod.cpp
+++ b/src/mongo/db/s/sharding_initialization_mongod.cpp
@@ -101,10 +101,20 @@ public:
// Update the shard identy config string
void onConfirmedSet(const State& state) noexcept final {
+ auto connStr = state.connStr;
+ try {
+ LOGV2(471691,
+ "Updating the shard registry with confirmed replica set",
+ "connectionString"_attr = connStr);
+ Grid::get(_serviceContext)->shardRegistry()->updateReplSetHosts(connStr);
+ } catch (const ExceptionForCat<ErrorCategory::ShutdownError>& e) {
+ LOGV2(471692, "Unable to update the shard registry", "error"_attr = e);
+ }
+
Grid::get(_serviceContext)
->getExecutorPool()
->getFixedExecutor()
- ->schedule([serviceContext = _serviceContext, connStr = state.connStr](Status status) {
+ ->schedule([serviceContext = _serviceContext, connStr](Status status) {
if (ErrorCodes::isCancelationError(status.code())) {
LOGV2_DEBUG(22067,
2,
@@ -120,7 +130,6 @@ public:
"Updating config server with confirmed replica set {connectionString}",
"Updating config server with confirmed replica set",
"connectionString"_attr = connStr);
- Grid::get(serviceContext)->shardRegistry()->updateReplSetHosts(connStr);
if (MONGO_unlikely(failUpdateShardIdentityConfigString.shouldFail())) {
return;