mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
MEDIUM: init: stop any peers section not bound to the correct process
This will prevent the peers section from remaining in listen state on the incorrect process. The peers_fe pointer is set to NULL, which will tell the peers task to commit suicide if it was already scheduled.
This commit is contained in:
parent
0fca4835b2
commit
f83d3fe00a
@ -1740,6 +1740,7 @@ int main(int argc, char **argv)
|
||||
|
||||
if (global.mode & (MODE_DAEMON | MODE_SYSTEMD)) {
|
||||
struct proxy *px;
|
||||
struct peers *curpeers;
|
||||
int ret = 0;
|
||||
int *children = calloc(global.nbproc, sizeof(int));
|
||||
int proc;
|
||||
@ -1799,6 +1800,19 @@ int main(int argc, char **argv)
|
||||
px = px->next;
|
||||
}
|
||||
|
||||
/* we might have to unbind some peers sections from some processes */
|
||||
for (curpeers = peers; curpeers; curpeers = curpeers->next) {
|
||||
if (!curpeers->peers_fe)
|
||||
continue;
|
||||
|
||||
if (curpeers->peers_fe->bind_proc & (1UL << proc))
|
||||
continue;
|
||||
|
||||
stop_proxy(curpeers->peers_fe);
|
||||
/* disable this peer section so that it kills itself */
|
||||
curpeers->peers_fe = NULL;
|
||||
}
|
||||
|
||||
free(children);
|
||||
children = NULL;
|
||||
/* if we're NOT in QUIET mode, we should now close the 3 first FDs to ensure
|
||||
|
Loading…
Reference in New Issue
Block a user