-
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 v3 gRPC server error with big requests and Quarkus v2 client #33445
Comments
/cc @alesj (grpc), @cescoffier (grpc) |
Are you sure it works with the same versions? |
@alesj Yes it seems to be working when both server and client have the same Quarkus versions (v2 or v3). $ java -jar target/quarkus-app/quarkus-run.jar "ko-1r"
# OK
$ java -jar target/quarkus-app/quarkus-run.jar "ko-xr"
# OK I created branches on the test project : |
Uh, so you're saying that it works up till 65526 (or is it 65536 = 256^2 = 2^16 ?) -- the mixed version? |
Yes I know it sounds weird, I went insane for a few days trying to debug and understand this. The limit is not the same when I send a single message (65526 bytes) or multiple messages. My first guess is the limit is 65536 but there are some headers or meta data that takes some space, so the message body content limit is a bit less than 65536. |
So this one first works and then on the 2nd try it fails? |
It's not a 2nd try, it's a different call with a bigger file (option I start the client with The server is not shutdown after the first call. I've made hundreds of tests, I can call the server with my clients multiple times in a row with a small file (<= 65526). When I send > 65526 bytes, it fails. Then I can start again to send small requests and it works. Without restarting the server. |
I migrated all my projects to Quarkus v3 and no similar issues. If nobody else has the problem, let's sweep it under the carpet. Maybe just add it in the documentation and let's move on. |
Closing. See comment. |
Describe the bug
I'm trying to upgrade my projects to Quarkus v3+ but I'm facing an issue when calling a Quarkus v3 gRPC server using a Quarkus v2 gRPC client.
The calls with small data work fine, but if I send more than ~64KB (in one big message or multiple small ones) then the connection is closed.
This works fine when both projects are using Quarkus v3 or v2, but not when the server is in v3 and client in v2. Which can be a problem because we are migrating our projects step by step.
Expected behavior
No connection lost when calling a v3 gRPC server with a v2 client.
Actual behavior
With a single message of 65526 bytes (not 65536, 65526) ✔️
With a single message of 65527 bytes 🔴
See the logs in the project to reproduce the bug: https://github.com/jdussouillez/quarkus-grpc-req-memory-bug#client
How to Reproduce?
Project to reproduce: https://github.com/jdussouillez/quarkus-grpc-req-memory-bug
Output of
uname -a
orver
Linux frpc245 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Output of
java -version
openjdk version "17.0.7" 2023-04-18 OpenJDK Runtime Environment (build 17.0.7+7-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 17.0.7+7-Ubuntu-0ubuntu120.04, mixed mode, sharing)
GraalVM version (if different from Java)
No response
Quarkus version or git rev
Build tool (ie. output of
mvnw --version
orgradlew --version
)Apache Maven 3.8.6
Additional information
No response
The text was updated successfully, but these errors were encountered: