Le 21/08/2018 à 21:56, Willy Tarreau a écrit :
On Tue, Aug 21, 2018 at 07:00:39PM +0200, Cyril Bonté wrote:
Le 21/08/2018 à 18:36, Willy Tarreau a écrit :
Cyril,

if you want to test, please be sure to update to at least 1b13bfd as
we've just added another fix on top of this series.

OK, I was performing some tests, I've now updated with this patch.
It looks better as now I don't see anymore hangs, but some issues remain.

OK, FWIW I've finally addressed the remaining potential deadlock causes
that could happen between checks and other operations on a same server
around the rdv point. But your issues seem unrelated.

Ah great !

(...)
OK, that one is my fault, I used a "listen" section for use_backend (maybe
we'll have to secure such configuration error to prevent segfaults).

I don't see how it could be an issue, that's a completely supported
config! You can even have this :

   listen a
      use_backend b if { prefer_b }

   listen b
      use_backend a if { prefer_a }

So any reproducer would be interesting.

I could extract this minimal configuration to reproduce the issue:
  defaults
    mode http

  listen proxy1
    bind :9001
    http-request set-header X-Forwarded-Proto http
    http-request capture hdr(X-Forwarded-Proto) len 8

  listen proxy2
    bind :9002
    use_backend proxy1

then, curl http://localhost:9002/ will cause a segfault.

The good news : I kept a configuration with abns, but removed the proxy
protocol. Everything is working as expected. So, the proxy protocol looks
to have a main role in the buffer issue.

Thanks for the diag. I don't remember changing anything around the proxy
protocol, but it's possible that something subtle changed. Also it's not
on the regular send/receive path so maybe I overlooked certain parts and
broke it by accident when changing the buffers.

Same here, if you have a small reproducer it will really help.

I try to find a configuration that could help identify the issue, but currently I fail (timings seems to have a role). I let you know once I have a good reproducer.


--
Cyril Bonté

Reply via email to