diff options
author | Gregory Noma <gregory.noma@gmail.com> | 2020-04-28 10:46:05 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-04-28 14:58:37 +0000 |
commit | a442e48115903835f3af75aeb43bc4f689423d1f (patch) | |
tree | 3e9054ae1916e241a458ebaee0a23bec61bc8798 | |
parent | 451c11f3e483fb89fdc2f7d4368d8c8d1d2f4cc4 (diff) | |
download | mongo-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.js | 18 |
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) { |