Description
Promise.race([exited, escalation]) resolves when escalation finishes. However, it then immediately calls await exited. Since the child process might not instantly die when receiving SIGKILL (or might be a zombie), the function hangs synchronously forever instead of gracefully continuing.
Environment
- macOS version: macOS 14.0
- Apple Silicon: M2
- Node version: v22.0.0
- Python version: 3.12
- Nanotune version: 1.7.0
Steps to Reproduce
- Trigger a fast shutdown while a heavy server load is occurring.
- The
escalation promise resolves, but await exited stalls the shutdown.
Expected Behavior
The function should exit immediately after the SIGKILL is dispatched.
Actual Behavior
The function hangs indefinitely awaiting a process exit that may be delayed or stuck.
Logs/Screenshots
N/A
Additional Context
Description
Promise.race([exited, escalation])resolves whenescalationfinishes. However, it then immediately callsawait exited. Since the child process might not instantly die when receivingSIGKILL(or might be a zombie), the function hangs synchronously forever instead of gracefully continuing.Environment
Steps to Reproduce
escalationpromise resolves, butawait exitedstalls the shutdown.Expected Behavior
The function should exit immediately after the SIGKILL is dispatched.
Actual Behavior
The function hangs indefinitely awaiting a process exit that may be delayed or stuck.
Logs/Screenshots
N/A
Additional Context