diff options
author | Matthew Saltz <matthew.saltz@mongodb.com> | 2019-09-06 21:51:11 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-09-06 21:51:11 +0000 |
commit | 6ea81c883e7297be99884185c908c7ece385caf8 (patch) | |
tree | 1907f891ec10a1f7c059a33b901da604f478a325 /src/mongo/s/sharding_initialization.cpp | |
parent | 398471a4fde3cdd7ca57f6bbf601ad66998b1150 (diff) | |
download | mongo-6ea81c883e7297be99884185c908c7ece385caf8.tar.gz |
SERVER-32871 Invalidate CatalogCache entries when ShardRegistry reload discovers a shard has been removed
Diffstat (limited to 'src/mongo/s/sharding_initialization.cpp')
-rw-r--r-- | src/mongo/s/sharding_initialization.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/mongo/s/sharding_initialization.cpp b/src/mongo/s/sharding_initialization.cpp index b67aedfc193..255ba6828f6 100644 --- a/src/mongo/s/sharding_initialization.cpp +++ b/src/mongo/s/sharding_initialization.cpp @@ -59,7 +59,6 @@ #include "mongo/s/catalog/sharding_catalog_client_impl.h" #include "mongo/s/catalog_cache.h" #include "mongo/s/client/shard_factory.h" -#include "mongo/s/client/shard_registry.h" #include "mongo/s/client/sharding_network_connection_hook.h" #include "mongo/s/cluster_identity_loader.h" #include "mongo/s/grid.h" @@ -164,16 +163,11 @@ std::string generateDistLockProcessId(OperationContext* opCtx) { } Status initializeGlobalShardingState(OperationContext* opCtx, - const ConnectionString& configCS, StringData distLockProcessId, - std::unique_ptr<ShardFactory> shardFactory, std::unique_ptr<CatalogCache> catalogCache, + std::unique_ptr<ShardRegistry> shardRegistry, rpc::ShardingEgressMetadataHookBuilder hookBuilder, boost::optional<size_t> taskExecutorPoolSize) { - if (configCS.type() == ConnectionString::INVALID) { - return {ErrorCodes::BadValue, "Unrecognized connection string."}; - } - ConnectionPool::Options connPoolOptions; connPoolOptions.controller = std::make_shared<ShardingTaskExecutorPoolController>(); @@ -189,7 +183,7 @@ Status initializeGlobalShardingState(OperationContext* opCtx, grid->init(makeCatalogClient(service, distLockProcessId), std::move(catalogCache), - std::make_unique<ShardRegistry>(std::move(shardFactory), configCS), + std::move(shardRegistry), std::make_unique<ClusterCursorManager>(service->getPreciseClockSource()), std::make_unique<BalancerConfiguration>(), std::move(executorPool), |