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

Reply via email to