From: Valentine Krasnobaeva Date: Thu, 5 Dec 2024 15:00:12 +0000 (+0100) Subject: BUG/MINOR: mworker: don't save program PIDs in oldpids X-Git-Tag: v3.2-dev1~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fead6c0ca8f8ad2f354fb4dfab241ec5281737c;p=thirdparty%2Fhaproxy.git BUG/MINOR: mworker: don't save program PIDs in oldpids After reload, previously launched programs are stopped explicitly in mworker_ext_launch_all(). So, there is no longer need to save their PIDs in oldpids array before the master reexec(). This also prepares the fix of "-D -W -sf/-st" modes, as we will need to loop over this array in the master process context, in order to stop the previous master, when the new one is ready. This patch should be backported only in 3.1. --- diff --git a/src/mworker.c b/src/mworker.c index a5ceff7077..5037d9d70f 100644 --- a/src/mworker.c +++ b/src/mworker.c @@ -388,7 +388,7 @@ static void mworker_reexec(int hardreload) if (!(child->options & PROC_O_LEAVING) && (child->options & PROC_O_TYPE_WORKER)) current_child = child; - if (!(child->options & (PROC_O_TYPE_WORKER|PROC_O_TYPE_PROG)) || child->pid <= -1) + if (!(child->options & (PROC_O_TYPE_WORKER)) || child->pid <= -1) continue; if ((next_argv[next_argc++] = memprintf(&msg, "%d", child->pid)) == NULL) goto alloc_error;