[SERVER-44582] Assert that a storage transaction is active for all cursor read operations Created: 12/Nov/19  Updated: 06/Dec/22  Resolved: 07/Apr/20

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Louis Williams Assignee: Backlog - Storage Execution Team
Resolution: Won't Do Votes: 0
Labels: groomed
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-44577 Ensure WiredTiger cursors have starte... Closed
Related
is related to SERVER-44577 Ensure WiredTiger cursors have starte... Closed
Assigned Teams:
Storage Execution
Sprint: Execution Team 2020-01-13
Participants:
Linked BF Score: 9

 Description   

It is not incorrect to use WiredTiger cursors without an active transaction, however this can be problematic when operations have preconditions in flags passed to begin_transaction(). Without an active transaction, an operation may expect to ignore prepare conflicts, but not (see SERVER-44581).

Like we do for writes, we should assert that cursor next() and seek() operations are performed inside an active transaction.



 Comments   
Comment by Louis Williams [ 07/Apr/20 ]

SERVER-44577 introduced a change to ensure a transaction is active while using cursors, so this assertion is no longer necessary.

Generated at Thu Feb 08 05:06:23 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.