diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2019-01-16 15:29:58 -0500 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2019-01-16 15:33:09 -0500 |
commit | fe187bdf22a6c67d5ff6f035d51a308870255e10 (patch) | |
tree | 7b44c0549c916ec45c7b096dee1f0921569909b1 | |
parent | 9df4dbcffefe8f9cf2d669603f230c1f44ac5652 (diff) | |
download | mongo-fe187bdf22a6c67d5ff6f035d51a308870255e10.tar.gz |
SERVER-37880 Treat non-retryable errors during prepare as implied abort
-rw-r--r-- | src/mongo/db/transaction_coordinator_driver.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/transaction_coordinator_driver.cpp b/src/mongo/db/transaction_coordinator_driver.cpp index 00bcc9015d8..e8b8df291e8 100644 --- a/src/mongo/db/transaction_coordinator_driver.cpp +++ b/src/mongo/db/transaction_coordinator_driver.cpp @@ -590,6 +590,11 @@ Future<PrepareResponse> TransactionCoordinatorDriver::sendPrepareToShard( LOG(3) << "Prepare stopped retrying due to retrying being cancelled"; return PrepareResponse{shardId, boost::none, boost::none}; } + + if (!isRetryableError(status.code())) { + return PrepareResponse{shardId, CommitDecision::kAbort, boost::none}; + } + uassertStatusOK(status); MONGO_UNREACHABLE; }); |