Hi Lucas,

On Thu, Dec 28, 2017 at 08:38:52AM +0000, Lucas Rolff wrote:
> It worked as it should, so I started adding more and more headers, until I
> hit the culprit: -H "Connection: keep-alive" or -H "Connection: close" (or
> even "Connection: test")

(...)

It's normal then, as it's mandated by the HTTP/2 spec to reject requests
containing any connection-specific header fields (Connection being the
first one) :

8.1.2.2.  Connection-Specific Header Fields

   HTTP/2 does not use the Connection header field to indicate
   connection-specific header fields; in this protocol, connection-
   specific metadata is conveyed by other means.  An endpoint MUST NOT
   generate an HTTP/2 message containing connection-specific header
   fields; any message containing connection-specific header fields MUST
   be treated as malformed (Section 8.1.2.6).

> I tried to replicate the issue in haproxy version 1.8.1, 1.8.2 and latest
> commit from master - all with the same result, I also tried playing around
> with the options of forceclose, http-server-close etc on both the frontend
> and backend in haproxy, none of them seem to "fix" the issue.

That's normal, you don't even reach this step, as it dies while decompressing
the request (right after hpack decoding just before conversion from H2 to H1).

> However in 1.8.2 I have 100% chance of replicating it using post requests in
> Firefox and nghttp, where in 1.8.1 the issue in the majority of the time
> works in Firefox and only have the few percentage failure rate.

There were so many state issues with 1.8.1 that it's not much surprizing, it's
possible that some of them would fail differently.

> I haven't been able to replicate the issue in other than Firefox and nghttp -

Clearly this means that this has to be reported to the Firefox team, as it's
expected to break basically everywhere (or to help detect non-compliant
servers). I still have no idea what this "quantum" is by the way ;-)

> Also, sorry for the lengthy email

Quite the opposite, it was extremely helpful in spotting the problem's
origin.

Thanks!
Willy

Reply via email to