From: William Lallemand Date: Wed, 15 Nov 2017 18:02:56 +0000 (+0100) Subject: BUG/MEDIUM: mworker: wait again for signals when execvp fail X-Git-Tag: v1.8-rc4~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f8b31c2c6e8cb4a15b57796e252226b3154c1bb;p=thirdparty%2Fhaproxy.git 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. --- 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);