On Wed, Feb 08, 2023 at 09:38:41AM +0100, Aurelien DARRAGON wrote: > 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
Thank you Aurélien! So I guess next step will be to compare what the "struct server" looks like in both cases (with server stuffed at boot and dynamic server). That's going to be a pain :-( Willy