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