summaryrefslogtreecommitdiff
path: root/src/mongo/s/transaction_router.cpp
diff options
context:
space:
mode:
authorBen Caimano <ben.caimano@mongodb.com>2019-10-15 15:33:45 +0000
committerevergreen <evergreen@mongodb.com>2019-10-15 15:33:45 +0000
commit0d9e6dbfdd8aea3cd110bfe1a67bbee31d5a8a3b (patch)
treefa58f4eb4320b934dc27e957f87d7c303ac9e25f /src/mongo/s/transaction_router.cpp
parent7a1a995ba487bc51e1a3754ea303d851b69803a3 (diff)
downloadmongo-0d9e6dbfdd8aea3cd110bfe1a67bbee31d5a8a3b.tar.gz
SERVER-42908 Add ErrorCodes to retryable errors to match drivers
Changes to src/mongo/base/error_codes.yml in v4.3 are replicated on src/mongo/base/error_codes.err for v4.2. (cherry picked from commit 0f16c5fc452d16c5a92e43e9fdd96f3822f05271)
Diffstat (limited to 'src/mongo/s/transaction_router.cpp')
-rw-r--r--src/mongo/s/transaction_router.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/mongo/s/transaction_router.cpp b/src/mongo/s/transaction_router.cpp
index 5b791ab0270..5e73c898bfd 100644
--- a/src/mongo/s/transaction_router.cpp
+++ b/src/mongo/s/transaction_router.cpp
@@ -158,13 +158,6 @@ bool isReadConcernLevelAllowedInTransaction(repl::ReadConcernLevel readConcernLe
readConcernLevel == repl::ReadConcernLevel::kLocalReadConcern;
}
-// Returns if the error code would be considered a retryable error for a retryable write.
-bool isRetryableWritesError(ErrorCodes::Error code) {
- return std::find(RemoteCommandRetryScheduler::kAllRetriableErrors.begin(),
- RemoteCommandRetryScheduler::kAllRetriableErrors.end(),
- code) != RemoteCommandRetryScheduler::kAllRetriableErrors.end();
-}
-
// Returns if a transaction's commit result is unknown based on the given statuses. A result is
// considered unknown if it would be given the "UnknownTransactionCommitResult" as defined by the
// driver transactions specification or fails with one of the errors for invalid write concern that
@@ -176,7 +169,7 @@ bool isRetryableWritesError(ErrorCodes::Error code) {
// https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#unknowntransactioncommitresult.
bool isCommitResultUnknown(const Status& commitStatus, const Status& commitWCStatus) {
if (!commitStatus.isOK()) {
- return isRetryableWritesError(commitStatus.code()) ||
+ return ErrorCodes::isRetriableError(commitStatus.code()) ||
ErrorCodes::isExceededTimeLimitError(commitStatus.code()) ||
commitStatus.code() == ErrorCodes::TransactionTooOld;
}