fix: handle SIGCLD alias for SIGCHLD on Linux

On Linux, SIGCLD and SIGCHLD are aliases for the same signal number (17).
The SIG_NAMES dict iteration order can map to either name, causing
"Unhandled signal: cld" errors when workers fail during boot.

Fixes #3453
This commit is contained in:
Benoit Chesneau 2026-01-23 21:25:07 +01:00
parent a3a59b2f56
commit 3179789f46

View File

@ -237,6 +237,10 @@ class Arbiter:
"""SIGCHLD handling - called from main loop, safe to log."""
self.reap_workers()
# SIGCLD is an alias for SIGCHLD on Linux. The SIG_NAMES dict may map
# to either "chld" or "cld" depending on iteration order of dir(signal).
handle_cld = handle_chld
def handle_hup(self):
"""\
HUP handling.