mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-05 21:11:53 +00:00
BUG/MEDIUM: mworker: stop proxies which have no listener in the master
The previous code was only stopping the listeners in the master, not the entire proxy. Since we now have a polling loop in the master, there might be some side effects, indeed some things that are still initialized. For example the checks were still running.
This commit is contained in:
parent
e064a80fa3
commit
2fd45fae46
@ -623,6 +623,8 @@ static void mworker_cleanlisteners()
|
||||
}
|
||||
|
||||
for (curproxy = proxies_list; curproxy; curproxy = curproxy->next) {
|
||||
int listen_in_master = 0;
|
||||
|
||||
list_for_each_entry_safe(l, l_next, &curproxy->conf.listeners, by_fe) {
|
||||
/* remove the listener, but not those we need in the master... */
|
||||
if (!(l->options & LI_O_MWORKER)) {
|
||||
@ -634,8 +636,13 @@ static void mworker_cleanlisteners()
|
||||
else
|
||||
unbind_listener(l);
|
||||
delete_listener(l);
|
||||
} else {
|
||||
listen_in_master = 1;
|
||||
}
|
||||
}
|
||||
/* if the proxy shouldn't be in the master, we stop it */
|
||||
if (!listen_in_master)
|
||||
curproxy->state = PR_STSTOPPED;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user