diff options
author | Jason Chan <jason.chan@10gen.com> | 2019-04-09 16:23:46 -0400 |
---|---|---|
committer | Jason Chan <jason.chan@10gen.com> | 2019-04-09 16:23:46 -0400 |
commit | 6a7f5a0b9c5798b20c91f2272abd9851ea9d2909 (patch) | |
tree | a0ad01b01180dadfe48fee984d10ea2bad536925 /src/mongo/db/transaction_participant.cpp | |
parent | 1041dd848e25e879260d1015d8da4f72ee7993fe (diff) | |
download | mongo-6a7f5a0b9c5798b20c91f2272abd9851ea9d2909.tar.gz |
SERVER-39829 Consider in-progress transactions when calculating the oldest active transaction timestamp
Diffstat (limited to 'src/mongo/db/transaction_participant.cpp')
-rw-r--r-- | src/mongo/db/transaction_participant.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mongo/db/transaction_participant.cpp b/src/mongo/db/transaction_participant.cpp index 59aa73e47c7..190fe6a09a7 100644 --- a/src/mongo/db/transaction_participant.cpp +++ b/src/mongo/db/transaction_participant.cpp @@ -373,10 +373,10 @@ TransactionParticipant::getOldestActiveTimestamp(Timestamp stableTimestamp) { auto doc = record.get().data.toBson(); auto txnRecord = SessionTxnRecord::parse( IDLParserErrorContext("parse oldest active txn record"), doc); - if (txnRecord.getState() != DurableTxnStateEnum::kPrepared) { + if (txnRecord.getState() != DurableTxnStateEnum::kPrepared && + txnRecord.getState() != DurableTxnStateEnum::kInProgress) { continue; } - // A prepared transaction must have a start timestamp. // TODO(SERVER-40013): Handle entries with state "prepared" and no "startTimestamp". invariant(txnRecord.getStartOpTime()); |