BUG/MEDIUM: cli: Deadlock when setting frontend maxconn
authorOliver Dala <o.dala@ixopay.com>
Wed, 25 Sep 2024 09:37:25 +0000 (11:37 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 1 Oct 2024 06:01:43 +0000 (08:01 +0200)
commitdcd946dcde858eb7973cd5cf125f50dc28c05080
tree4ec7995fd9949b5cc88a045e09edefb18c52aa8e
parent7ba52732e4fb387843bf00b3e08295e29141f3a3
BUG/MEDIUM: cli: Deadlock when setting frontend maxconn

The proxy lock state isn't passed down to relax_listener
through dequeue_proxy_listeners, which causes a deadlock
in relax_listener when it tries to get that lock.

Backporting: Older versions didn't have relax_listener and directly called
resume_listener in dequeue_proxy_listeners. lpx should just be passed directly
to resume_listener then.

The bug was introduced in commit 001328873c352e5e4b1df0dcc8facaf2fc1408aa

[cf: This patch should fix the issue #2726. It must be backported as far as
2.4]

(cherry picked from commit a889413f5ec5e2c0c6ed30debfd16f666dbc0f99)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
include/haproxy/listener.h
src/listener.c
src/proxy.c