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.
This commit is contained in:
William Lallemand 2017-11-15 19:02:56 +01:00 committed by Willy Tarreau
parent 722d4ca0dd
commit 2f8b31c2c6

View File

@ -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);