mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 17:17:06 +02:00
BUG/MINOR: mworker: don't use oldpids[] anymore for reload
Since commit 3f12887
("MINOR: mworker: don't use children variable
anymore"), the oldpids array is not used anymore to generate the new -sf
parameters. So we don't need to set nb_oldpids to 0 during the first
start of the master process.
This patch fixes a bug when 2 masters process tries to synchronize their
peers, there is a small chances that it won't work because nb_oldpids
equals 0.
Should be backported as far as 2.0.
This commit is contained in:
parent
ea6bf83d62
commit
aba7f8b313
@ -555,7 +555,7 @@ void mworker_reload()
|
|||||||
old_argc++;
|
old_argc++;
|
||||||
|
|
||||||
/* 1 for haproxy -sf, 2 for -x /socket */
|
/* 1 for haproxy -sf, 2 for -x /socket */
|
||||||
next_argv = calloc(old_argc + 1 + 2 + mworker_child_nb() + nb_oldpids + 1,
|
next_argv = calloc(old_argc + 1 + 2 + mworker_child_nb() + 1,
|
||||||
sizeof(*next_argv));
|
sizeof(*next_argv));
|
||||||
if (next_argv == NULL)
|
if (next_argv == NULL)
|
||||||
goto alloc_error;
|
goto alloc_error;
|
||||||
@ -2817,12 +2817,6 @@ int main(int argc, char **argv)
|
|||||||
if ((global.mode & MODE_MWORKER) && !(global.mode & MODE_MWORKER_WAIT))
|
if ((global.mode & MODE_MWORKER) && !(global.mode & MODE_MWORKER_WAIT))
|
||||||
mworker_kill_max_reloads(SIGTERM);
|
mworker_kill_max_reloads(SIGTERM);
|
||||||
|
|
||||||
if ((global.mode & MODE_MWORKER) && (getenv("HAPROXY_MWORKER_REEXEC") == NULL)) {
|
|
||||||
nb_oldpids = 0;
|
|
||||||
ha_free(&oldpids);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Note that any error at this stage will be fatal because we will not
|
/* Note that any error at this stage will be fatal because we will not
|
||||||
* be able to restart the old pids.
|
* be able to restart the old pids.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user