haproxy/include
Olivier Houchard 4be7190c10 BUG/MEDIUM: servers: Fix a race condition with idle connections.
When we're purging idle connections, there's a race condition, when we're
removing the connection from the idle list, to add it to the list of
connections to free, if the thread owning the connection tries to free it
at the same time.
To fix this, simply add a per-thread lock, that has to be hold before
removing the connection from the idle list, and when, in conn_free(), we're
about to remove the connection from every list. That way, we know for sure
the connection will stay valid while we remove it from the idle list, to add
it to the list of connections to free.
This should happen rarely enough that it shouldn't have any impact on
performances.
This has not been reported yet, but could provoke random segfaults.

This should be backported to 2.0.
2019-07-11 16:16:38 +02:00
..
common MINOR: pools: make the thread harmless during the mmap/munmap syscalls 2019-07-09 10:40:33 +02:00
import BUILD: threads/plock: fix a build issue on Clang without optimization 2017-11-20 21:06:35 +01:00
proto BUG/MEDIUM: servers: Fix a race condition with idle connections. 2019-07-11 16:16:38 +02:00
types BUG/MEDIUM: fd/threads: fix excessive CPU usage on multi-thread accept 2019-07-09 10:41:24 +02:00