From 67e371ea1440c67ed84577d37566b577f7ecd336 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Thu, 25 Nov 2021 10:03:44 +0100 Subject: [PATCH] BUG/MEDIUM: mworker: FD leak of the eventpoll in wait mode Since 2.5, before re-executing in wait mode, the master can have a working configuration loaded, with a eventpoll fd. This case was not handled correctly and a new eventpoll FD is leaking in the master at each reload, which is inherited by the new worker. Must be backported in 2.5. --- src/haproxy.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/haproxy.c b/src/haproxy.c index 4dbb283a78..094a8393a1 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -683,13 +683,11 @@ static void mworker_reexec() /* close the listeners FD */ mworker_cli_proxy_stop(); - if (getenv("HAPROXY_MWORKER_WAIT_ONLY") == NULL) { - /* close the poller FD and the thread waker pipe FD */ - list_for_each_entry(ptdf, &per_thread_deinit_list, list) - ptdf->fct(); - if (fdtab) - deinit_pollers(); - } + /* close the poller FD and the thread waker pipe FD */ + list_for_each_entry(ptdf, &per_thread_deinit_list, list) + ptdf->fct(); + if (fdtab) + deinit_pollers(); #ifdef HAVE_SSL_RAND_KEEP_RANDOM_DEVICES_OPEN /* close random device FDs */ RAND_keep_random_devices_open(0); -- 2.39.5