mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-20 21:31:28 +02:00
MEDIUM: backend: use a trylock to grab a connection on high FD counts as well
Commit b1adf03df ("MEDIUM: backend: use a trylock when trying to grab an idle connection") solved a contention issue on the backend under normal condition, but there is another one further, which only happens when the number of FDs in use is considered too high, and which obviously causes random crashes with just 16 threads once the number of FDs is about to be exhausted. Like the aforementioned patch, this one should be backported to 2.3.
This commit is contained in:
parent
2c481d0105
commit
9b9f8477f8
@ -1449,7 +1449,9 @@ int connect_server(struct stream *s)
|
||||
// see it possibly larger.
|
||||
ALREADY_CHECKED(i);
|
||||
|
||||
HA_SPIN_LOCK(IDLE_CONNS_LOCK, &idle_conns[i].idle_conns_lock);
|
||||
if (HA_SPIN_TRYLOCK(IDLE_CONNS_LOCK, &idle_conns[i].idle_conns_lock) != 0)
|
||||
continue;
|
||||
|
||||
node = ebmb_first(&srv->per_thr[i].idle_conns);
|
||||
if (node) {
|
||||
conn_node = ebmb_entry(node, struct conn_hash_node, node);
|
||||
|
Loading…
x
Reference in New Issue
Block a user