mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-26 08:11:21 +02:00
BUG/MINOR: server: always count one idle slot for current thread
The idle server connection estimates brought in commit bdb86bd ("MEDIUM: server: improve estimate of the need for idle connections") were committed without the minimum of 1 idle conn needed for the current thread. The net effect is that there are bursts of dropped connections when the load varies because there's no provision for the last connection. No backport needed, this is 2.2-dev.
This commit is contained in:
parent
369a2efc27
commit
e69282a03f
@ -253,7 +253,7 @@ static inline int srv_add_to_idle_list(struct server *srv, struct connection *co
|
||||
if (srv && srv->pool_purge_delay > 0 &&
|
||||
(srv->max_idle_conns == -1 || srv->max_idle_conns > srv->curr_idle_conns) &&
|
||||
(srv->curr_used_conns + srv->curr_idle_conns < MAX(srv->curr_used_conns, srv->est_need_conns) +
|
||||
(MT_LIST_ISEMPTY(&srv->safe_conns[tid]) && MT_LIST_ISEMPTY(&srv->idle_conns[tid])) ? global.nbthread : 0) &&
|
||||
(MT_LIST_ISEMPTY(&srv->safe_conns[tid]) && MT_LIST_ISEMPTY(&srv->idle_conns[tid])) ? global.nbthread : 1) &&
|
||||
!(conn->flags & CO_FL_PRIVATE) &&
|
||||
((srv->proxy->options & PR_O_REUSE_MASK) != PR_O_REUSE_NEVR) &&
|
||||
!conn->mux->used_streams(conn) && conn->mux->avail_streams(conn) &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user