diff options
author | Blake Oler <blake.oler@mongodb.com> | 2018-04-20 11:59:06 -0400 |
---|---|---|
committer | Blake Oler <blake.oler@mongodb.com> | 2018-04-20 12:10:44 -0400 |
commit | 60cb34ea7351d25b0eb6bee947d21ada09cf438b (patch) | |
tree | b567e1415b8dd3e2b7270e96600adf3d66b84bef /src/mongo/db/sessions_collection_config_server.cpp | |
parent | c6e3031ef797b9e3c65de9aaf9da812c49a97e5a (diff) | |
download | mongo-60cb34ea7351d25b0eb6bee947d21ada09cf438b.tar.gz |
SERVER-32677 Prevent sessions periodic refresh from prematurely accessing sharding internals
Diffstat (limited to 'src/mongo/db/sessions_collection_config_server.cpp')
-rw-r--r-- | src/mongo/db/sessions_collection_config_server.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/sessions_collection_config_server.cpp b/src/mongo/db/sessions_collection_config_server.cpp index 179687e33d4..35fc8c5c837 100644 --- a/src/mongo/db/sessions_collection_config_server.cpp +++ b/src/mongo/db/sessions_collection_config_server.cpp @@ -91,6 +91,11 @@ Status SessionsCollectionConfigServer::_generateIndexesIfNeeded(OperationContext } Status SessionsCollectionConfigServer::setupSessionsCollection(OperationContext* opCtx) { + // If the sharding state is not yet initialized, fail. + if (!Grid::get(opCtx)->isShardingInitialized()) { + return {ErrorCodes::ShardingStateNotInitialized, "sharding state is not yet initialized"}; + } + stdx::lock_guard<stdx::mutex> lk(_mutex); { // Only try to set up this collection until we have done so successfully once. |