-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Internal Code
-
None
-
Fully Compatible
-
Service Arch 2021-02-22
Due to SERVER-53500, using the AsyncTry-until utility can lead to an invariant being hit in unpredictable places. Since SERVER-53500 will be difficult to diagnose and potentially unfeasible to fix, so in the meantime we can rewrite the AsyncTry utility to not use recursive futures, which are responsible for hitting the invariant. I've done a POC and confirmed this fixes the issues seen by SERVER-50656 on debug builds.
- causes
-
SERVER-55966 AsyncTry no longer handles exceptions from until() lambda, leading to process crash
- Closed
-
SERVER-57784 TryUntilLoop Does Not Synchronize Destructor and Promise resolution
- Closed
- is related to
-
SERVER-50656 Add cancelation support to WaitForMajorityService using CancelationTokens
- Closed
-
SERVER-53500 Investigate making nested futures equivalent to chained continuations
- Backlog
- related to
-
SERVER-54616 Rewrite ReshardingTxnCloner::_updateSessionRecordsUntilPipelineExhausted to not use recursion
- Closed