summaryrefslogtreecommitdiff
path: root/src/mongo/s/async_requests_sender.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/async_requests_sender.cpp')
-rw-r--r--src/mongo/s/async_requests_sender.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/mongo/s/async_requests_sender.cpp b/src/mongo/s/async_requests_sender.cpp
index 36f91459d29..7cca30f0b99 100644
--- a/src/mongo/s/async_requests_sender.cpp
+++ b/src/mongo/s/async_requests_sender.cpp
@@ -272,9 +272,9 @@ auto AsyncRequestsSender::RemoteData::handleResponse(RemoteCommandOnAnyCallbackA
}
shard->updateReplSetMonitor(failedTargets.front(), status);
-
+ bool isStartingTransaction = _cmdObj.getField("startTransaction").booleanSafe();
if (!_ars->_stopRetrying && shard->isRetriableError(status.code(), _ars->_retryPolicy) &&
- _retryCount < kMaxNumFailedHostRetryAttempts) {
+ _retryCount < kMaxNumFailedHostRetryAttempts && !isStartingTransaction) {
LOGV2_DEBUG(4615637,
1,
@@ -284,7 +284,6 @@ auto AsyncRequestsSender::RemoteData::handleResponse(RemoteCommandOnAnyCallbackA
"shardId"_attr = _shardId,
"hosts"_attr = failedTargets,
"error"_attr = redact(status));
-
++_retryCount;
_shardHostAndPort.reset();
// retry through recursion