summaryrefslogtreecommitdiff
path: root/src/mongo/s/client/shard_connection.cpp
diff options
context:
space:
mode:
authorMisha Tyulenev <misha@mongodb.com>2016-08-24 18:05:09 -0400
committerMisha Tyulenev <misha@mongodb.com>2016-08-25 11:57:21 -0400
commit46b33e042de75d801e5fd9f20b74a1c9a249b0c2 (patch)
treeb339c718ee0282cfd04190725369a3b9f154d111 /src/mongo/s/client/shard_connection.cpp
parente589562b858061cf82dd430115c82033203db018 (diff)
downloadmongo-46b33e042de75d801e5fd9f20b74a1c9a249b0c2.tar.gz
SERVER-23996 ShardRegistry::getShard should return a StatusWith<shared_ptr<Shard>>
Diffstat (limited to 'src/mongo/s/client/shard_connection.cpp')
-rw-r--r--src/mongo/s/client/shard_connection.cpp6
1 files changed, 4 insertions, 2 deletions
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);