- 
    Type:Bug 
- 
    Resolution: Fixed
- 
    Priority:Major - P3 
- 
    Affects Version/s: None
- 
    Component/s: None
- 
    None
- 
        Fully Compatible
- 
        ALL
- 
        v4.4, v4.2, v4.0
- 
        Service Arch 2020-04-06, Service arch 2020-04-20, Service arch 2020-05-04, Service arch 2020-05-18, Service arch 2020-12-28, Service Arch 2021-01-25, Security 2021-01-25, Security 2021-02-08, Security 2021-02-22
- 
        (copied to CRM)
- 
        46
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
establishCursors() has a best effort try-catch-throw block here. However, our underlying pattern for the ARS is prone to throwing after interruption. We should introduce a separate draining pattern for the ARS and use it from establishCursors().
This is usually a seen as an invariant in this block in mongo/transport/baton_asio_linux.h:
Invariant failure _scheduled.empty() src/mongo/transport/baton_asio_linux.h 116
- is depended on by
- 
                    SERVER-50305 ARS::next() does not respect OperationContext deadline -         
- Closed
 
-         
- is related to
- 
                    SERVER-46255 establishCursors/AsyncRequestsSender can leave dangling request if interrupted -         
- Closed
 
-         
- 
                    SERVER-54406 NetworkInterfaceMock should allow simultaneous interruption and response -         
- Closed
 
-