diff options
Diffstat (limited to 'src/mongo/s/client/shard_remote.cpp')
-rw-r--r-- | src/mongo/s/client/shard_remote.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/mongo/s/client/shard_remote.cpp b/src/mongo/s/client/shard_remote.cpp index 85e0bc7678b..dea32639d84 100644 --- a/src/mongo/s/client/shard_remote.cpp +++ b/src/mongo/s/client/shard_remote.cpp @@ -274,22 +274,19 @@ StatusWith<Shard::QueryResponse> ShardRemote::_exhaustiveFindOnConfig( return; } - auto& data = dataStatus.getValue(); + const auto& data = dataStatus.getValue(); + if (data.otherFields.metadata.hasField(rpc::kReplSetMetadataFieldName)) { auto replParseStatus = rpc::ReplSetMetadata::readFromMetadata(data.otherFields.metadata); - if (!replParseStatus.isOK()) { status = replParseStatus.getStatus(); response.docs.clear(); return; } - response.opTime = replParseStatus.getValue().getLastOpCommitted(); - - // We return the config opTime that was returned for this particular request, but as - // a safeguard we ensure our global configOpTime is at least as large as it. - invariant(grid.configOpTime() >= response.opTime); + const auto& replSetMetadata = replParseStatus.getValue(); + response.opTime = replSetMetadata.getLastOpCommitted(); } for (const BSONObj& doc : data.documents) { |