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.
diff --git a/src/haproxy.c b/src/haproxy.c
index 4dbb283..094a839 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -683,13 +683,11 @@
/* 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);