Details
-
Improvement
-
Status: Closed
-
Major - P3
-
Resolution: Won't Do
-
None
-
None
-
None
-
None
-
Storage Execution
Description
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.
Attachments
Issue Links
- 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
-