summaryrefslogtreecommitdiff
path: root/src/mongo/s/client/shard.h
diff options
context:
space:
mode:
authorDianna Hohensee <dianna.hohensee@10gen.com>2016-10-18 09:43:11 -0400
committerDianna Hohensee <dianna.hohensee@10gen.com>2016-10-28 14:08:04 -0400
commit53efde3280dd6a880987150777f5a26143df59e1 (patch)
tree19584f4fd8fb7456faa20ae74fda84218e9eb676 /src/mongo/s/client/shard.h
parent910ad1d9ea6462b847f1432f041bbf68b2cffa8d (diff)
downloadmongo-53efde3280dd6a880987150777f5a26143df59e1.tar.gz
SERVER-25999 add list of error codes to Shard that can be used to determine whether remote command errors should be propogated further back to other servers
Diffstat (limited to 'src/mongo/s/client/shard.h')
-rw-r--r--src/mongo/s/client/shard.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/s/client/shard.h b/src/mongo/s/client/shard.h
index 723a66d8ca9..26413b61c6d 100644
--- a/src/mongo/s/client/shard.h
+++ b/src/mongo/s/client/shard.h
@@ -223,6 +223,14 @@ public:
// explicitly overridden
static const Milliseconds kDefaultConfigCommandTimeout;
+ /**
+ * Returns false if the error is a retriable error and/or causes a replset monitor update. These
+ * errors, if from a remote call, should not be further propagated back to another server
+ * because that server will interpret them as orignating on this server rather than the one this
+ * server called.
+ */
+ static bool shouldErrorBePropagated(ErrorCodes::Error code);
+
protected:
struct HostWithResponse {
HostWithResponse(boost::optional<HostAndPort> _host,