mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
BUG/MEDIUM: mworker: don't poll on LI_O_INHERITED listeners
The listeners with the LI_O_INHERITED flag were deleted but not unbound which is a problem since we have a polling in the master. This patch unbind every listeners which are not require for the master, but does not close the FD of those that have a LI_O_INHERITED flag.
This commit is contained in:
parent
b3fb56db10
commit
dd319a5b1d
@ -615,16 +615,20 @@ static void mworker_cleanlisteners()
|
|||||||
|
|
||||||
for (curproxy = proxies_list; curproxy; curproxy = curproxy->next) {
|
for (curproxy = proxies_list; curproxy; curproxy = curproxy->next) {
|
||||||
list_for_each_entry_safe(l, l_next, &curproxy->conf.listeners, by_fe) {
|
list_for_each_entry_safe(l, l_next, &curproxy->conf.listeners, by_fe) {
|
||||||
/* does not close if the FD is inherited with fd@
|
|
||||||
* from the parent process */
|
|
||||||
if (!(l->options & (LI_O_INHERITED|LI_O_MWORKER)))
|
|
||||||
unbind_listener(l);
|
|
||||||
/* remove the listener, but not those we need in the master... */
|
/* remove the listener, but not those we need in the master... */
|
||||||
if (!(l->options & LI_O_MWORKER))
|
if (!(l->options & LI_O_MWORKER)) {
|
||||||
|
/* unbind the listener but does not close if
|
||||||
|
the FD is inherited with fd@ from the parent
|
||||||
|
process */
|
||||||
|
if (l->options & LI_O_INHERITED)
|
||||||
|
unbind_listener_no_close(l);
|
||||||
|
else
|
||||||
|
unbind_listener(l);
|
||||||
delete_listener(l);
|
delete_listener(l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user