-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
In BF-33263 we have two index scans. If one plan happens to yield, it calls abandonSnapshot() which by default does a WT rollback_transaction and resets all positioned cursors. The other plan is now using an invalid cursor. This bug only manifests probabilistically unless internalQueryExecYieldIterations is set to 1 and is only caught by ASAN.
We should consider adding some bookkeeping in WiredTigerSession to track the number of positioned cursors in a session, to catch future bugs early. Both SDI and RecordStore cursors don't make owned copies of WT cursor data.
- depends on
-
WT-13180 Optional assertion that no cursor is active when resetting a session
- In Code Review
- related to
-
SERVER-91071 Do not create two yieldable index scans at the same time
- Closed
-
SERVER-91080 Yielding too early can invalidate cursor data when traversing column index
- Closed