summaryrefslogtreecommitdiff
path: root/src/mongo/db/transaction
diff options
context:
space:
mode:
authorAli Mir <ali.mir@mongodb.com>2023-04-19 21:36:36 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-19 23:49:45 +0000
commitaad09dc4ea618f95b25319a47d14f6ad46947c11 (patch)
treeffb438152adc5c73e9c217f2a05102304404b8e1 /src/mongo/db/transaction
parentc94c4f3abd0f9c113067e360269301b14363d53e (diff)
downloadmongo-aad09dc4ea618f95b25319a47d14f6ad46947c11.tar.gz
SERVER-71443 Remove or document instances of UninterruptibleLockGuard in replication components
Diffstat (limited to 'src/mongo/db/transaction')
-rw-r--r--src/mongo/db/transaction/transaction_participant.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mongo/db/transaction/transaction_participant.cpp b/src/mongo/db/transaction/transaction_participant.cpp
index 9357ac0b54b..b900979115c 100644
--- a/src/mongo/db/transaction/transaction_participant.cpp
+++ b/src/mongo/db/transaction/transaction_participant.cpp
@@ -1612,8 +1612,7 @@ Timestamp TransactionParticipant::Participant::prepareTransaction(
// This shouldn't cause deadlocks with other prepared txns, because the acquisition
// of RSTL lock inside abortTransaction will be no-op since we already have it.
// This abortGuard gets dismissed before we release the RSTL while transitioning to
- // prepared.
- // TODO (SERVER-71610): Fix to be interruptible or document exception.
+ // the prepared state.
UninterruptibleLockGuard noInterrupt(opCtx->lockState()); // NOLINT.
abortTransaction(opCtx);
} catch (...) {
@@ -1899,8 +1898,8 @@ void TransactionParticipant::Participant::commitPreparedTransaction(
// We can no longer uassert without terminating.
unlockGuard.dismiss();
- // Once entering "committing with prepare" we cannot throw an exception.
- // TODO (SERVER-71610): Fix to be interruptible or document exception.
+ // Once entering "committing with prepare" we cannot throw an exception,
+ // and therefore our lock acquisitions cannot be interruptible.
UninterruptibleLockGuard noInterrupt(opCtx->lockState()); // NOLINT.
// On secondary, we generate a fake empty oplog slot, since it's not used by opObserver.