diff options
author | Kevin Pulo <kevin.pulo@mongodb.com> | 2018-07-04 01:05:22 +0000 |
---|---|---|
committer | Kevin Pulo <kevin.pulo@mongodb.com> | 2018-07-11 01:45:09 +0000 |
commit | 80c7c825a44cf99b17e81f4233445c7ab1927706 (patch) | |
tree | 19621b13b541af3d1778c42f6ad46c30de1fb045 /src/mongo/s/client | |
parent | bb9f225e47faacb95ae9e5658313a5ebf56f37bf (diff) | |
download | mongo-80c7c825a44cf99b17e81f4233445c7ab1927706.tar.gz |
SERVER-34897 add parameter to prohibit mongos retries
Diffstat (limited to 'src/mongo/s/client')
-rw-r--r-- | src/mongo/s/client/shard_remote.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/s/client/shard_remote.cpp b/src/mongo/s/client/shard_remote.cpp index 05ab1389190..e6a67f8b83c 100644 --- a/src/mongo/s/client/shard_remote.cpp +++ b/src/mongo/s/client/shard_remote.cpp @@ -45,6 +45,7 @@ #include "mongo/db/operation_context.h" #include "mongo/db/query/query_request.h" #include "mongo/db/repl/read_concern_args.h" +#include "mongo/db/server_parameters.h" #include "mongo/executor/task_executor_pool.h" #include "mongo/rpc/get_status_from_command_result.h" #include "mongo/rpc/metadata/repl_set_metadata.h" @@ -69,6 +70,11 @@ namespace { // response. const BSONObj kReplMetadata(BSON(rpc::kReplSetMetadataFieldName << 1)); +constexpr bool internalProhibitShardOperationRetryByDefault = false; +MONGO_EXPORT_SERVER_PARAMETER(internalProhibitShardOperationRetry, + bool, + internalProhibitShardOperationRetryByDefault); + /** * Returns a new BSONObj describing the same command and arguments as 'cmdObj', but with maxTimeMS * replaced by maxTimeMSOverride (or removed if maxTimeMSOverride is Milliseconds::max()). @@ -101,6 +107,10 @@ ShardRemote::ShardRemote(const ShardId& id, ShardRemote::~ShardRemote() = default; bool ShardRemote::isRetriableError(ErrorCodes::Error code, RetryPolicy options) { + if (internalProhibitShardOperationRetry.loadRelaxed()) { + return false; + } + if (options == RetryPolicy::kNoRetry) { return false; } |