diff options
author | Ali Mir <ali.mir@mongodb.com> | 2023-04-19 21:36:36 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-04-19 23:49:45 +0000 |
commit | aad09dc4ea618f95b25319a47d14f6ad46947c11 (patch) | |
tree | ffb438152adc5c73e9c217f2a05102304404b8e1 /src/mongo/db/transaction | |
parent | c94c4f3abd0f9c113067e360269301b14363d53e (diff) | |
download | mongo-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.cpp | 7 |
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. |