summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Caimano <ben.caimano@10gen.com>2019-03-29 12:01:50 -0400
committerBen Caimano <ben.caimano@10gen.com>2019-04-01 16:13:04 -0400
commitcbe3968ce01e4a749756422893b7274100675705 (patch)
tree6b881bba7e2c0ae53d5964e1f452b1a115c86d9c
parent6803c64d71c1104634a9dc18e8e9d368ed6be228 (diff)
downloadmongo-cbe3968ce01e4a749756422893b7274100675705.tar.gz
SERVER-40387 Shutdown shard registry after catalog cache
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp1
-rw-r--r--src/mongo/s/server.cpp4
-rw-r--r--src/mongo/s/sharding_mongod_test_fixture.cpp4
3 files changed, 9 insertions, 0 deletions
diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp
index d7897df0c79..c331d15c3aa 100644
--- a/src/mongo/db/s/sharding_initialization_mongod.cpp
+++ b/src/mongo/db/s/sharding_initialization_mongod.cpp
@@ -165,6 +165,7 @@ void ShardingInitializationMongoD::shutDown(OperationContext* opCtx) {
grid->getExecutorPool()->shutdownAndJoin();
grid->catalogClient()->shutDown(opCtx);
+ grid->shardRegistry()->shutdown();
}
bool ShardingInitializationMongoD::initializeShardingAwarenessIfNeeded(OperationContext* opCtx) {
diff --git a/src/mongo/s/server.cpp b/src/mongo/s/server.cpp
index acf643ad1c7..0dd4621f8c6 100644
--- a/src/mongo/s/server.cpp
+++ b/src/mongo/s/server.cpp
@@ -230,6 +230,10 @@ void cleanupTask(ServiceContext* serviceContext) {
catalog->shutDown(opCtx);
}
+ if (auto shardRegistry = Grid::get(opCtx)->shardRegistry()) {
+ shardRegistry->shutdown();
+ }
+
#if __has_feature(address_sanitizer)
// When running under address sanitizer, we get false positive leaks due to disorder around
// the lifecycle of a connection and request. When we are running under ASAN, we try a lot
diff --git a/src/mongo/s/sharding_mongod_test_fixture.cpp b/src/mongo/s/sharding_mongod_test_fixture.cpp
index 0b2a1a2711e..06081591f0c 100644
--- a/src/mongo/s/sharding_mongod_test_fixture.cpp
+++ b/src/mongo/s/sharding_mongod_test_fixture.cpp
@@ -297,6 +297,10 @@ void ShardingMongodTestFixture::tearDown() {
Grid::get(operationContext())->catalogClient()->shutDown(operationContext());
}
+ if (Grid::get(operationContext())->shardRegistry()) {
+ Grid::get(operationContext())->shardRegistry()->shutdown();
+ }
+
Grid::get(operationContext())->clearForUnitTests();
_opCtx.reset();