From bd3983b5950c4172ee4ad1643711cd45f3637428 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Thu, 5 Mar 2026 15:54:13 +0100 Subject: [PATCH] MINOR: mworker: add a BUG_ON() on mproxy_li in _send_status mproxy_li is supposed to be used in _send_status to stop the sockpair FD between the master and the new worker, being a listener. This can only work if the listener has been stored in the fdtab owner, and there's no reason it shouldn't be here. --- src/cli.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/cli.c b/src/cli.c index 55a514d09..ee53961f0 100644 --- a/src/cli.c +++ b/src/cli.c @@ -2628,7 +2628,14 @@ static int _send_status(char **args, char *payload, struct appctx *appctx, void /* update status of the new worker */ if (proc->pid == pid) { proc->options &= ~PROC_O_INIT; + /* the sockpair between the master and the worker is + * used temporarly as a listener to receive + * _send_status. Once it is received we don't want to + * use this FD as a listener anymore, but only as a + * server, to allow only connections from the master to + * the worker for the master CLI */ mproxy_li = fdtab[proc->ipc_fd[0]].owner; + BUG_ON(mproxy_li == NULL); stop_listener(mproxy_li, 0, 0, 0); } /* send TERM to workers, which have exceeded max_reloads counter */