-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Resteasy reactive with Http 1.1 Pipelining raising exception since quarkus 2.4.0 #24626
Comments
Is manually tagging people frowned upon? 😃 @geoand @stuartwdouglas |
@cescoffier any idea? |
Looks like we are not executed on a duplicated context. I will try to reproduce it to check where do we come from. It could be a bug in vertx as it's expected that vertx invoke the request handler on a duplicated context, but that does not seem to be the case here. |
So, yes, it would need a fix in Vert.x. I can do a fix in Quarkus, but that's not the right place. |
Thanks @cescoffier ! |
… even when receiving pipelined requests. This is a 'temporary(tm)' workaround, as the issue most probably lies in Vert.x. It fixes quarkusio#24626
… even when receiving pipelined requests. This is a 'temporary(tm)' workaround, as the issue most probably lies in Vert.x. It fixes quarkusio#24626 (cherry picked from commit fc801a2)
@cescoffier Just tried with 2.8.1, the error has changed but something still doesn't seem right:
Both requests are processed and 200 is returned for both now though EDIT: |
Hum... that's more a CDI Request context issue I think. @mkouba do you have any idea? |
@RuggeroDAlo any chance you can provide a project and instructions on how I can reproduce the issue? |
@geoand I'm not sure what happened now but I was trying with the same code as yesterday (the one in the issue description) and now I can't reproduce it, false alarm I guess? |
If you are able to reproduce it again, please let us know :) |
@geoand The same error occurred in a pod running on k8s (so in prod mode) on version 2.8.1
This is in the same pod where I found the original error, so I think it is related to pipelining. Unfortunately I don't know how to reproduce it, sorry. |
Describe the bug
In a quarkus 2.7.5 app running with docker I've noticed the following errors:
I think this is due to the client using pipelining, I can reproduce the error running in dev mode with the simplest endpoint possible
Sending 2 requests with
On version 2.7.5.Final / 2.8.0.CR1 results in:
On quarkus 2.3.1 or lower this doesn't happen, quarkus 2.4.0 is the first version where this happens as far as I can tell.
Expected behavior
HTTP 1.1 pipelined requests should not fail
Actual behavior
The second HTTP 1.1 pipelined request fails with an exception and the response for the second request is never sent
How to Reproduce?
quarkus:dev
echo -en "GET / HTTP/1.1\r\nHost: localhost\r\n\r\nGET / HTTP/1.1\r\nHost: localhost\r\n\r\n" | nc localhost 8080
Output of
uname -a
orver
Linux g8 5.13.0-37-generic #42-Ubuntu SMP Tue Mar 15 14:34:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Output of
java -version
openjdk version "17.0.2" 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-122.10) OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-122.10, mixed mode, sharing)
GraalVM version (if different from Java)
NA
Quarkus version or git rev
2.4.0, 2.7.5, 2.8.0.CR1
Build tool (ie. output of
mvnw --version
orgradlew --version
)Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Additional information
No response
The text was updated successfully, but these errors were encountered: