mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-05 20:47:55 +00:00
424f297d4b
The respawn is forked from the middle of the service loop, so the child inherits @pendingconnections -- the client sockets the parent has accepted and not yet handed to a worker. The monitor never serves one, and it outlives the worker that does, so its copy keeps that client's socket open until the daemon exits. Close them in the child, next to the listener and the rescanplugins channel it already drops. xcatd_install_monitor.t runs the lifted respawn block against stand-in descriptors and requires every pending connection to be closed. It fails without this change. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>