[SERVER-53887] whenAny/whenAll/whenAllSucceed never fulfill returned future if input executor is already shut down Created: 19/Jan/21  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Matthew Saltz (Inactive) Assignee: Backlog - Service Architecture
Resolution: Unresolved Votes: 0
Labels: sa-remove-fv-backlog-22
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Service Arch
Operating System: ALL
Participants:
Story Points: 4

 Description   

For these helper functions, if the input futures are ExecutorFutures but their executor is shut down, the callback inside getAsync won't run, meaning that their returned future will never be resolved, possibly leading to hangs.

This can be fixed by using unsafeToInlineFuture before calling .getAsync, since the getAsync is only doing minor work like signaling atomics and setting a promise.


Generated at Thu Feb 08 05:32:06 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.