MEDIUM: mworker: call per_thread deinit in mworker_reload()

We need to clean the FDs registered manually in the poller to avoid FD
leaking during a reload of the master.

This patch call the per thread deinit function which close the thread
waker pipe.
This commit is contained in:
William Lallemand 2018-09-11 10:06:29 +02:00 committed by Willy Tarreau
parent 333d7979cd
commit 123f1f6441
1 changed files with 6 additions and 1 deletions

View File

@ -740,8 +740,13 @@ static void mworker_reload()
next_argv[next_argc++] = NULL;
}
if (getenv("HAPROXY_MWORKER_WAIT_ONLY") == NULL)
if (getenv("HAPROXY_MWORKER_WAIT_ONLY") == NULL) {
struct per_thread_deinit_fct *ptdf;
list_for_each_entry(ptdf, &per_thread_deinit_list, list)
ptdf->fct();
deinit_pollers(); /* we don't want to leak the poller fd */
}
ha_warning("Reexecuting Master process\n");
execvp(next_argv[0], next_argv);