]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: mworker: don't save program PIDs in oldpids
authorValentine Krasnobaeva <vkrasnobaeva@haproxy.com>
Thu, 5 Dec 2024 15:00:12 +0000 (16:00 +0100)
committerWilliam Lallemand <wlallemand@haproxy.com>
Fri, 6 Dec 2024 11:00:22 +0000 (12:00 +0100)
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.

src/mworker.c

index a5ceff7077b66cb619702f3b21b1c8a8250f36fd..5037d9d70ff8c5abdd388c59e23adc994700e932 100644 (file)
@@ -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;