From fe187bdf22a6c67d5ff6f035d51a308870255e10 Mon Sep 17 00:00:00 2001 From: Kaloian Manassiev Date: Wed, 16 Jan 2019 15:29:58 -0500 Subject: SERVER-37880 Treat non-retryable errors during prepare as implied abort --- src/mongo/db/transaction_coordinator_driver.cpp | 5 +++++ 1 file changed, 5 insertions(+) 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 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; }); -- cgit v1.2.1