-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Networking & Observability
-
Fully Compatible
-
Networking & Obs 2024-08-19, Networking & Obs 2024-09-02, Networking & Obs 2024-09-16, Networking & Obs 2024-09-30, Networking & Obs 2024-10-14
Today, NetworkInterface::startExhaustCommand kicks off recursive tasks for reading exhaust responses and passes each to an argument-provided callback. This prevents callers from specifying when they're ready to receive the next response, which can easily lead to bugs in practice.
We should update NI::startExhaustCommand to return an ExhaustResponseReader (implemented in SERVER-93113) instead. As part of this, we'll need to move the recursive exhaust response work scheduling into ThreadPoolTaskExecutor, rather than in NetworkInterfaceTL. See the design for more details.
- depends on
-
SERVER-93113 Implement ExhaustResponseReader
- Closed
- duplicates
-
SERVER-92818 Add use of CancellationToken to the TPTE exhaust path
- Closed
- fixes
-
SERVER-79855 Race condition in thread_pool_task_executor exhaust handling
- Closed
- is duplicated by
-
SERVER-95017 Complete TODO listed in SERVER-93651
- Closed
- is related to
-
SERVER-62396 Add a non-deterministic variant for `ThreadPoolTaskExecutor` tests
- Backlog
-
SERVER-97567 Simplify network mocking
- Closed