New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
411's On 2.9-dev7 and above #2386
Comments
Originally reported on discourse:
Just reiterating to make sure it's not misinterpreted: No issue in 2.8.3, 2.8.4, 2.8.5 and 2.9dev6. Also:
|
Indeed, I confirm the issue. When a |
…riginally Commit f89ba27 ("BUG/MEDIUM: mux-h1; Ignore headers modifications about payload representation") introduced a regression. The Content-Length is no longer sent to the server for requests without payload but with a 'Content-Lnegth' header explicitly set to 0, like POST request with no payload. It is of course unexpected. In some cases, depending on the server, such requests are considered as invalid and a 411-Length-Required is returned. The above commit is not directly responsible for the bug, it only reveals a too lax condition to skip the 'Content-Length' header of bodyless requests. We must only skip this header if none was originally found, during the parsing. This patch should fix the issue #2386. It must be backported to 2.9.
I pushed a fix to 3.0-DEV. Thanks ! |
…riginally Commit f89ba27 ("BUG/MEDIUM: mux-h1; Ignore headers modifications about payload representation") introduced a regression. The Content-Length is no longer sent to the server for requests without payload but with a 'Content-Lnegth' header explicitly set to 0, like POST request with no payload. It is of course unexpected. In some cases, depending on the server, such requests are considered as invalid and a 411-Length-Required is returned. The above commit is not directly responsible for the bug, it only reveals a too lax condition to skip the 'Content-Length' header of bodyless requests. We must only skip this header if none was originally found, during the parsing. This patch should fix the issue haproxy#2386. It must be backported to 2.9. (cherry picked from commit 966a18e) Signed-off-by: Willy Tarreau <w@1wt.eu>
Awesome, thank you very much! And can confirm that the fix in 2.9.1 works very well. |
Detailed Description of the Problem
Hi,
Fairly recent user of HAProxy here, loving it so far, thanks!
We are running into an issue when trying to upgrade from 2.8.x to 2.9.
When we try to upgrade to 2.9 we start to get 411’s from some of our backends on some calls where we were getting 200's. We tested on 2.8.3, 2.8.4, and 2.8.5 and all exhibited the same issue.
Then we tested the various dev tags of 2.9 and got 200's as expected up until the 2.9-dev7.
The 411's are only showing up on our backends that are Windows servers behind AppGW's.
Expected Behavior
Routes that 200 in 2.8.x should return 200 in 2.9.x rather than 411.
Steps to Reproduce the Behavior
Do you have any idea what may have caused this?
Not really, I have a suspicion it's something with the series of Content Length commits between 2.9-dev6 and 2.9-dev7 though.
Do you have an idea how to solve the issue?
Not yet. We're new to HAProxy. We've tried various adjustments on the Content-Length headers in configuration but no dice so far.
What is your configuration?
Output of
haproxy -vv
Last Outputs and Backtraces
No response
Additional Information
No response
The text was updated successfully, but these errors were encountered: