From 2f8b31c2c6e8cb4a15b57796e252226b3154c1bb Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Wed, 15 Nov 2017 19:02:56 +0100 Subject: [PATCH] BUG/MEDIUM: mworker: wait again for signals when execvp fail After execvp fails, the signals were ignored, preventing to try a reload again. It is now fixed by reaching the top of the mworker_wait() function once the execvp failed. --- src/haproxy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/haproxy.c b/src/haproxy.c index 28811a84f9..b90e2540ba 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -670,6 +670,8 @@ static void mworker_wait() int exitpid = -1; int status = 0; +restart_wait: + mworker_register_signals(); mworker_unblock_signals(); @@ -679,6 +681,8 @@ static void mworker_wait() int sig = caught_signal; if (sig == SIGUSR2 || sig == SIGHUP) { mworker_reload(); + /* should reach there only if it fail */ + goto restart_wait; } else { Warning("Exiting Master process...\n"); mworker_kill(sig); -- 2.47.3