-
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
Quarkus with GRPC server, behind a istio service mesh throws error #39769
Comments
/cc @alesj (grpc), @cescoffier (grpc), @geoand (kubernetes), @iocanel (kubernetes) |
It seems that the service mesh does not send the content-length header and does not use "chunked" encoding. I do not have experience with service meshes, so could you provide guidelines for getting them running locally? Your example uses the reflection service; I suspect you also tried with a real service and saw the same behavior. |
this appears to provide guidance to setup MiniKube and thereafter install istio. Yeah I had seen that with the real service as well. |
I encountered the same issue. It was due to the Istio protocol selection, which translates HTTP/2 to HTTP/1.1. Changing the port name of the Service from I think it'd be nicer if Quarkus gRPC can show some warning when it received requests in HTTP/1.1. |
@alesj WDYT? |
You mean wrt this:
Sure, why not. |
@alesj we already have a method checking if the request is a gRPC request. We can add the check there. Note that, in theory, it is possible to transform gRPC frames on http/1.1. But we do not support that. |
Ah yes. But this is for Vert.x gRPC only. |
I would ignore |
Yeah, we should do that -- when was the official plan?
What would the check look like? Or what to check for in the headers? |
The official plan was: after the LTS, so right about... now 😝 |
About the check, if you get the request object (which I believe you do) you can check the protocol and reject http/1 and http/1.1 requests. |
Uf ... let me finish my Observability blog / docs ... and then I can add something about this change. |
Like this?
|
Yes! |
Left-over - closing. |
Describe the bug
Quarkus with new GRPC server, behind a istio service mesh throws error
Without the Service mesh it works fine.
Removing the istio label, saw a the grpc reponses
Expected behavior
Should send appropriate response, when service mesh is enabled as well.
Actual behavior
Throws Exception, on the client side no response/timeout.
How to Reproduce?
grpcurl -vv --plaintext grpc-demo.default.svc.cluster.local:80 list
Output of
uname -a
orver
Docker Runtime - eclipse-temurin:21-jdk-jammy
Output of
java -version
eclipse-temurin:21-jdk-jammy
Quarkus version or git rev
3.3.0
Build tool (ie. output of
mvnw --version
orgradlew --version
)quarkus 3.4.1 (using quarkus build Apache Maven 3.8.7 local Java version: 17.0.9)
Additional information
No response
The text was updated successfully, but these errors were encountered: