Hi,

I'll appreciate a response on this, I was unable to get any guidance from
docs.

Thanks

On Tue, Nov 7, 2023 at 3:37 PM Abhijeet Rastogi <abhijeet.1...@gmail.com>
wrote:

> Hi HAproxy community,
>
> In our HAproxy deployment, access to runtime API is extremely critical, it
> is used for:-
> - collecting metrics
> - managing servers in a backend (SoT is not DNS, so we have to use runtime
> API), etc
>
> I observed that, when soft-stop is in progress, we get the following error
> while performing a connect.
>
> connect(5, {sa_family=AF_UNIX, sun_path="path/to/haproxy.sock"}, 60) = -1
> ECONNREFUSED (Connection refused)
> recvfrom(3, 0x7ffcc675fe10, 519, MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN
> (Resource temporarily unavailable)
>
> Due to this, we're unable to perform any operations or collect metrics
> while haproxy is in soft stop, for us, that's a long time as we use the
> current settings.
>
>     close-spread-time 10m
>     hard-stop-after 11m
>
> "stats socket" (unix socket) is configured on one of the production
> frontends, we're using version "version 2.8.0-01b97d-15 2023/09/26".
>
> Will it make sense if HAproxy had an option to not disable runtime API
> during soft-stop, perhaps an argument
> While exploring the code, I noticed that the soft-stop code stops all 
> "stoppable
> listeners"
> <https://sourcegraph.com/github.com/haproxy/haproxy/-/blob/src/proxy.c?L2280>,
> I wonder if there's a way to make a listener non-stoppable?
>
> Are there any workarounds to getting around this limitation, while also
> retaining the soft-stop behavior?
> Our reason to use soft-stop is to do best-effort into gracefully draining
> client connections (send Connection: close). We also don't have a way to
> drain H2 connections proactively, but that's a discussion for another day.
>
> Cheers,
> Abhijeet (https://abhi.host)
>


-- 
Cheers,
Abhijeet (https://abhi.host)

Reply via email to