[SERVER-34723] Command profiling should not use transaction read timestamp Created: 27/Apr/18  Updated: 29/Oct/23  Resolved: 01/May/18

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.0.0-rc0

Type: Bug Priority: Major - P3
Reporter: Tess Avitabile (Inactive) Assignee: Matthew Russotto
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Repl 2018-05-07
Participants:
Linked BF Score: 11

 Description   

When a transaction commits or aborts, it does not destroy the RecoveryUnit on the OperationContext. That RecoveryUnit still contains the _readAtTimestamp from the transaction. When we profile at the end of the command, we attempt to open the WT snapshot at time _readAtTimestamp. But since the transaction already committed/aborted, that snapshot can be destroyed, and we can get at SnapshotTooOld error. The RecoveryUnit for profiling should not have _readAtTimestamp set.



 Comments   
Comment by Githook User [ 01/May/18 ]

Author:

{'email': 'matthew.russotto@10gen.com', 'name': 'Matthew Russotto', 'username': 'mtrussotto'}

Message: SERVER-34723 Command profiling should not use transaction read timestamp.

This patch makes abortCurrentTransaction and transaction commit clear out the recovery unit
on the opCtx so no transactional settings are used for any post-transaction writes.
Branch: master
https://github.com/mongodb/mongo/commit/431cc09caaa8150ea8d7725bfaa14cc612d0d62d

Generated at Thu Feb 08 04:37:36 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.