Hi,

I don't know if it could help, but based on Thomas instructions/example,
I'm able to reproduce:

As weird as it may seem, the 'maxconn' parameter used with dynamic
server seems to trigger the issue.

Below is a minimal reproducer:


> global
>   stats socket /tmp/ha.sock mode 660 level admin expose-fd listeners
>
> defaults
> timeout client 5s
> timeout server 5s
> timeout connect 5s
>
> frontend test
>   mode http
>   bind *:8081
>   use_backend farm
>
> listen dummyok
>   bind localhost:18999
>   mode http
>   http-request return status 200 hdr test "ok"
>
> backend farm
>   mode http


(it doesn't matter if the backend starts with empty server list)


Step 1 (optional), test the reference behavior without maxconn:

Start haproxy and perform the following :

echo "add server farm/t1 127.0.0.1:18999" | nc -U /tmp/ha.sock
echo "enable server farm/t1" | nc -U /tmp/ha.sock

curl localhost:8081 -> OK


Step 2, compare behavior when maxconn is in play:

Start haproxy and perform the following :

echo "add server farm/t1 127.0.0.1:18999 maxconn 100" | nc -U /tmp/ha.sock
echo "enable server farm/t1" | nc -U /tmp/ha.sock

curl localhost:8081 -> 503 after 5s connect timeout


Regards,
Aurelien

Reply via email to