diff options
author | Samy Lanka <samy.lanka@mongodb.com> | 2021-09-09 19:16:11 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-09-09 20:29:22 +0000 |
commit | ea2ea50017f76adf68ca3cb385546774a251c42e (patch) | |
tree | d49d678e79d4916ae225141aa509befc4c683bcb /src/mongo/db/repl/transaction_oplog_application.cpp | |
parent | 6e2d551ce63c717ce367d9a67f0542386313880d (diff) | |
download | mongo-ea2ea50017f76adf68ca3cb385546774a251c42e.tar.gz |
SERVER-58183 Ensure that we ignore prepare conflicts when applying pr…
Diffstat (limited to 'src/mongo/db/repl/transaction_oplog_application.cpp')
-rw-r--r-- | src/mongo/db/repl/transaction_oplog_application.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/repl/transaction_oplog_application.cpp b/src/mongo/db/repl/transaction_oplog_application.cpp index 52ff70424b3..d2fb7f0a178 100644 --- a/src/mongo/db/repl/transaction_oplog_application.cpp +++ b/src/mongo/db/repl/transaction_oplog_application.cpp @@ -440,6 +440,10 @@ Status _applyPrepareTransaction(OperationContext* opCtx, auto txnParticipant = TransactionParticipant::get(opCtx); + // We reset the recovery unit on retries, so make sure that we ignore prepare conflicts. + opCtx->recoveryUnit()->setPrepareConflictBehavior( + PrepareConflictBehavior::kIgnoreConflictsAllowWrites); + // Release the WUOW, transaction lock resources and abort storage transaction so that the // writeConflictRetry loop will be able to retry applying transactional ops on WCE error. ScopeGuard abortOnError([&txnParticipant, opCtx] { |