Hi List,

On upgrading to 3.0.5, we began to see a lot of failed backend requests. They 
are successful status codes but fail with connection state `SD--`. On the 
upstream side, the request succeeds (the upstream is also HAProxy, its state is 
`----`).

The data appears to be fully transferred without error, but something goes 
wrong towards the end of the request. This happens on a rather small percentage 
of requests, but I'm struggling to determine how to isolate the problem 
further. Timing and bytes transferred on both sides match up. Varnish is in the 
loop for most of these requests (but not all), and it ends up returning an 
error response, so it's not a spurious log line where the client doesn't 
register an error. To make matters worse, the response status code from the 
backend is successful, so the requests can't be retried using L7.

The only thing that was changed should be the upgrade between 3.0.4 and 3.0.5.

Our settings are pretty standard. TLS on both sides; a mix of H3, H2, and H1.1 
for the frontend; exclusively client-cert TLS + H1.1 for the backend. Errors 
happen on all FE protocols.

Any tips on how to debug this further? Possibly relevant config below.

Best,
Luke

---
defaults
  default-server ca-file ca-certificates.crt resolvers default inter 5s 
fastinter 2s downinter 10s init-addr libc,last,none check ssl check-alpn 
http/1.1 pool-purge-delay 60s max-reuse 1500 alpn http/1.1 hash-key addr

  mode http
  balance roundrobin
  option http-keep-alive
  option allbackups

  http-reuse always
  retry-on all-retryable-errors
  option redispatch 1
  retries 2

The rest is pretty typical frontend / backends. The errors happen across all 
backends and frontends, regardless of specific configuration.


—
Luke Seelenbinder
Stadia Maps | Founder & CEO
stadiamaps.com

Reply via email to