Apologies, i forgot to mention this is running on FreeBSD 11.1 I've just run the same tests on Centos and there is no issue
On Tue, 11 Sep 2018 at 09:05, David King <king.c.da...@googlemail.com> wrote: > Hi all > > i was hoping for some help with see if this is a bug or a mis config > > i have a config which works fine in 1.7.9 and 1.7.11, but when running it > 1.8.13 is seems to fail to respond to the client > > I've simplified down and anonymised the config, but basically it's being > used to do A/B failiover at haproxy so it uses nested frontend and backends > with unix sockets to achieve this > > The config is > > ------ > global > pidfile /var/run/haproxy.pid > stats socket /var/run/haproxy.sock mode 600 level admin > stats timeout 2m > maxconn 4000 > unix-bind user root mode 666 > daemon > > defaults > timeout connect 15s > timeout server 1m > timeout http-request 15s > timeout check 15s > > frontend frontend1 > bind 127.0.0.1:8080 > mode http > timeout client 1m > default_backend api > > frontend api-A > bind /var/run/haproxy/api-A.sock > mode http > default_backend api-A > > frontend api-B > bind /var/run/haproxy/api-B.sock > mode http > default_backend api-B > > backend api > mode http > balance roundrobin > server api-A /var/run/haproxy/api-A.sock disabled > server api-B /var/run/haproxy/api-B.sock > > backend api-A > mode http > balance roundrobin > option forwardfor > server server-1-A <redacted> > server server-2-B <redacted> > > backend api-B > mode http > balance roundrobin > option forwardfor > server server-1-B <redacted> > server server-2-B <redacted> > --------- > > When running with 1.7.11, its all nice and quick > > curl http://10.2.74.41:8443 -vvv > * Rebuilt URL to: http://10.2.74.41:8443/ > * Trying 10.2.74.41... > * TCP_NODELAY set > * Connected to 10.2.74.41 (10.2.74.41) port 8443 (#0) > > GET / HTTP/1.1 > > Host: 10.2.74.41:8443 > > User-Agent: curl/7.61.0 > > Accept: */* > > > < HTTP/1.1 404 Not Found > < Content-Type: application/problem+json; charset=utf-8 > < Date: Tue, 11 Sep 2018 07:50:54 GMT > < Content-Length: 27 > < > * Connection #0 to host 10.2.74.41 left intact > > 00000004:frontend1.accept(0005)=0008 from [10.2.74.41:44161] > 00000004:frontend1.clireq[0008:ffffffff]: GET / HTTP/1.1 > 00000004:frontend1.clihdr[0008:ffffffff]: Host: 10.2.74.41:8443 > 00000004:frontend1.clihdr[0008:ffffffff]: User-Agent: curl/7.61.0 > 00000004:frontend1.clihdr[0008:ffffffff]: Accept: */* > 00000005:api-B.accept(0007)=000a from [unix:1] > 00000005:api-B.clireq[000a:ffffffff]: GET / HTTP/1.1 > 00000005:api-B.clihdr[000a:ffffffff]: Host: 10.2.74.41:8443 > 00000005:api-B.clihdr[000a:ffffffff]: User-Agent: curl/7.61.0 > 00000005:api-B.clihdr[000a:ffffffff]: Accept: */* > 00000005:api-B.srvrep[000a:000b]: HTTP/1.1 404 Not Found > 00000005:api-B.srvhdr[000a:000b]: Content-Type: application/problem+json; > charset=utf-8 > 00000005:api-B.srvhdr[000a:000b]: Date: Tue, 11 Sep 2018 07:51:22 GMT > 00000005:api-B.srvhdr[000a:000b]: Content-Length: 27 > 00000004:api.srvrep[0008:0009]: HTTP/1.1 404 Not Found > 00000004:api.srvhdr[0008:0009]: Content-Type: application/problem+json; > charset=utf-8 > 00000004:api.srvhdr[0008:0009]: Date: Tue, 11 Sep 2018 07:51:22 GMT > 00000004:api.srvhdr[0008:0009]: Content-Length: 27 > 00000007:frontend1.clicls[0008:0009] > 00000007:frontend1.closed[0008:0009] > 00000006:api-B.clicls[000a:000b] > 00000006:api-B.closed[000a:000b] > > > however with 1.8.13 the client doesn't gets the response and ends up with > a 504, however the haproxy debug log shows the response is reviced by > haproxy, but never passed to the client > > curl http://10.2.74.41:8443 -vvv > * Rebuilt URL to: http://10.2.74.41:8443/ > * Trying 10.2.74.41... > * TCP_NODELAY set > * Connected to 10.2.74.41 (10.2.74.41) port 8443 (#0) > > GET / HTTP/1.1 > > Host: 10.2.74.41:8443 > > User-Agent: curl/7.61.0 > > Accept: */* > > > *** HANGS HERE TILL 504 **** > > from haproxy > 00000000:frontend1.accept(0006)=000b from [10.2.74.41:57043] ALPN=<none> > 00000000:frontend1.clireq[000b:ffffffff]: GET / HTTP/1.1 > 00000000:frontend1.clihdr[000b:ffffffff]: Host: 10.2.74.41:8443 > 00000000:frontend1.clihdr[000b:ffffffff]: User-Agent: curl/7.61.0 > 00000000:frontend1.clihdr[000b:ffffffff]: Accept: */* > 00000001:api-A.accept(0007)=000d from [unix:1] ALPN=<none> > 00000001:api-A.clireq[000d:ffffffff]: GET / HTTP/1.1 > 00000001:api-A.clihdr[000d:ffffffff]: Host: 10.2.74.41:8443 > 00000001:api-A.clihdr[000d:ffffffff]: User-Agent: curl/7.61.0 > 00000001:api-A.clihdr[000d:ffffffff]: Accept: */* > 00000001:api-A.srvrep[000d:000e]: HTTP/1.1 404 Not Found > 00000001:api-A.srvhdr[000d:000e]: Content-Type: application/problem+json; > charset=utf-8 > 00000001:api-A.srvhdr[000d:000e]: Date: Tue, 11 Sep 2018 07:48:39 GMT > 00000001:api-A.srvhdr[000d:000e]: Content-Length: 27 > ** 5 seconds > 00000002:api-A.clicls[adfd:ffffffff] > 00000002:api-A.closed[adfd:ffffffff] > ** 15 seconds > 00000000:api.srvcls[000b:adfd] > 00000000:api.clicls[adfd:adfd] > 00000000:api.closed[adfd:adfd] > > > > any idea why this happens? sorry for long post! > > Dave >