-
Type: Improvement
-
Resolution: Won't Do
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
We have code to check someĀ preconditions before taking locks and acquiring a snapshot in AutoGetCollectionForRead. But these preconditions are not checked after we yield in PlanExecutor. And in general, the use of AutoGetCollectionForRead seems error-prone after lock yields as the guarantees the RAII type gives might be lost after query yieldings.
We have SERVER-44529 and SERVER-46721 that describe a similar but slightly different problem of the undesired behaviors of AutoGetCollectionForRead after yields.
I think it is better to come up with a more generic solution so that the guarantees of AutoGetCollectionForRead can still hold across yields.
- related to
-
SERVER-44529 Re-acquiring locks after a yield and step down results in wrong parameters on recoveryUnit
- Closed
-
SERVER-46721 Step up may cause reads at PIT with holes after yielding
- Closed