From 46b33e042de75d801e5fd9f20b74a1c9a249b0c2 Mon Sep 17 00:00:00 2001 From: Misha Tyulenev Date: Wed, 24 Aug 2016 18:05:09 -0400 Subject: SERVER-23996 ShardRegistry::getShard should return a StatusWith> --- src/mongo/s/client/shard_connection.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/mongo/s/client/shard_connection.cpp') diff --git a/src/mongo/s/client/shard_connection.cpp b/src/mongo/s/client/shard_connection.cpp index a4faaa34377..7e38ed59b9e 100644 --- a/src/mongo/s/client/shard_connection.cpp +++ b/src/mongo/s/client/shard_connection.cpp @@ -281,10 +281,12 @@ public: // Now only check top-level shard connections for (const ShardId& shardId : all) { try { - const auto shard = grid.shardRegistry()->getShard(txn, shardId); - if (!shard) { + auto shardStatus = grid.shardRegistry()->getShard(txn, shardId); + if (!shardStatus.isOK()) { + invariant(shardStatus == ErrorCodes::ShardNotFound); continue; } + const auto shard = shardStatus.getValue(); string sconnString = shard->getConnString().toString(); Status* s = _getStatus(sconnString); -- cgit v1.2.1