summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Noma <gregory.noma@gmail.com>2020-04-28 10:46:05 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-04-28 14:58:37 +0000
commita442e48115903835f3af75aeb43bc4f689423d1f (patch)
tree3e9054ae1916e241a458ebaee0a23bec61bc8798
parent451c11f3e483fb89fdc2f7d4368d8c8d1d2f4cc4 (diff)
downloadmongo-a442e48115903835f3af75aeb43bc4f689423d1f.tar.gz
SERVER-47761 Retry moveChunk in stepdown suites on CallbackCanceled
(cherry picked from commit 53fbcd81aa71a5d5289fdc27dffe47f174039e5e)
-rw-r--r--jstests/libs/override_methods/network_error_and_txn_override.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/jstests/libs/override_methods/network_error_and_txn_override.js b/jstests/libs/override_methods/network_error_and_txn_override.js
index 2ea5a2badb2..e7259508f5a 100644
--- a/jstests/libs/override_methods/network_error_and_txn_override.js
+++ b/jstests/libs/override_methods/network_error_and_txn_override.js
@@ -209,14 +209,16 @@ function isRetryableShardCollectionResponse(res) {
// Returns true if the given response could have come from moveChunk being interrupted by a
// failover.
function isRetryableMoveChunkResponse(res) {
- return res.code === ErrorCodes.OperationFailed &&
- (RetryableWritesUtil.errmsgContainsRetryableCodeName(res.errmsg) ||
- // The transaction number is bumped by the migration coordinator when its commit or abort
- // decision is being made durable.
- res.errmsg.includes("TransactionTooOld") ||
- // The range deletion task may have been interrupted. This error can occur even when
- // _waitForDelete=false.
- res.errmsg.includes("operation was interrupted"));
+ return (res.code === ErrorCodes.OperationFailed &&
+ (RetryableWritesUtil.errmsgContainsRetryableCodeName(res.errmsg) ||
+ // The transaction number is bumped by the migration coordinator when its commit or
+ // abort decision is being made durable.
+ res.errmsg.includes("TransactionTooOld") ||
+ // The range deletion task may have been interrupted. This error can occur even when
+ // _waitForDelete=false.
+ res.errmsg.includes("operation was interrupted"))) ||
+ // This error may occur when the node is shutting down.
+ res.code === ErrorCodes.CallbackCanceled;
}
function hasError(res) {