-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
File upload puzzle #11926
Comments
I just tried your example, and everything works fine: client-side:
server-side:
|
WIth a larger file: client-side:
server-side:
|
Thank you for looking at this issue @sbordet . How do you recommend we start tracing this beast? Any pointers will be appreciated. FWIW, Jetty is behind HAProxy in our deployments. |
Enable |
Thanks @sbordet . |
Hi @sbordet,
line 1907
Do you have any recommendations where to look or what to look for comparing line 687 of the attached file to line 1907? loglog.zip |
This may help someone someday. We found out after lots of digging that it was not a Jetty issue naturally 😉 This issue is probably due to different interpretation of HTTP spec. by different proxies. Please see HAProxy doesn't emit :authority when converting h1 --> h2. The comment from Willey was most illuminating to us that this is an HTTP WG issue to clarify. The workaround referenced by @capflam or anything on Google search that recommends forcing the http-request uri will eventually lead to issues. i.e.
Trust us; we tested a whole bunch of them with different forwarded/forward-for headers... Just don't go there. Following the wisdom of the NGINX crew on HTTP/2 to backend, we disabled HTTP/2 from HAProxy to the backend on the final hop and @sbordet, Thank you! |
Closing -- I think it was reopened by mistake. |
@sbordet do we really want to close this? Should we keep it open to track any discussion with there WG. If ultimately it is an ambiguity that doesn't get fixed/classified, should we provide an option so that we can work with haproxy? |
@gregw okay, but from a server point of view it receives an HTTP/2 request without Whether HAProxy or a client is in front of Jetty should not matter. If HAProxy does not send |
I agree it is likely a haproxy bug, but if they don't fix it, then could we provide a request customizer that synthesizes the :authority from a host header? or is that too late? |
@sbordet yes, count me in! |
Introduced AuthorityCustomizer to synthesize the authority from the Host header (or serverName:serverPort). Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
@sbordet I'd love to try #12066 if I know what to do 😃 |
@olamy can you please help @a1730 (see above)? @a1730 if you want to try to build it yourself (need Java 17 and Maven):
Then, in your project, update the Jetty dependencies to |
I think you need to use the same-home label to make the home from a CI build available. I'll add to the PR.... |
I did add the label yesterday, but the PR was failing due to a test failure. |
@a1730 I assume your testing went fine? |
Yes! Thanks for asking @sbordet |
Jetty Version
INFO :oejs.Server:main: jetty-12.0.10; built: 2024-05-30T04:40:36.563Z; git: 26106df; jvm 22.0.1+8
Jetty Environment
core,ee8
Java Version
openjdk 22.0.1 2024-04-16
OpenJDK Runtime Environment Temurin-22.0.1+8 (build 22.0.1+8)
OpenJDK 64-Bit Server VM Temurin-22.0.1+8 (build 22.0.1+8, mixed mode)
Question
We have a very simple file upload service that worked very well with Jetty-10 but gets stuck with files larger than 12KB on Jetty-12 throwing a timeout exception.
What could be blocking file upload? The attached servlet blocks on file upload when the file size is more than 12KB i.e. XLSX_150 works but XLSX_200 hangs. I must be missing a tunable knob.
Please help, I am at a loss where to look.
Thank you.
The servlet: JettyHangingServlet.zip
Jetty Configuration: jetty configuration
Sample files: file_example_XLSX_150.xlsx file_example_XLSX_200.xlsx](https://github.com/user-attachments/files/15856079/file_example_XLSX_200.xlsx)
The text was updated successfully, but these errors were encountered: