-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
During implementation and code review of SERVER-133148, we identified an opportunity to clean up this area of the code which has proven bug-prone in the past.
The core idea is to refactor AsyncResultsMerger's per-remote retry bookkeeping from ad-hoc flags (outstandingRequest + callback handle + retry-strategy internals) into an explicit per-remote lifecycle state machine (e.g. Undispatched -> Dispatched -> ResultsBuffered -> Exhausted), with a HitRetryableError state carrying an explicit retryNotBefore backoff deadline.
This should improve the code legibility here, and reduce the risk of future latent bugs by doing so.
Full details
- is related to
-
SERVER-134806 Track explicit opCtx-restoration readiness for AsyncResultsMerger dispatch gate
-
- Investigating
-
- related to
-
SERVER-133148 Avoid using semi-initialized opCtx when retrying getMores
-
- Closed
-
-
SERVER-134806 Track explicit opCtx-restoration readiness for AsyncResultsMerger dispatch gate
-
- Investigating
-