Skip to content
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

Upgrade Netty to fix issue with large headers and HTTP2 continuation packets #11150

Closed
nicholashagen opened this issue May 5, 2024 · 1 comment
Assignees
Milestone

Comments

@nicholashagen
Copy link

What version of gRPC-Java are you using?

Latest 1.63.0

What is your environment?

Mac, Unix, any JVM
TLS client/server

What did you expect to see?

Large headers over 200KB should work without issue over TLS, even if not ideal.

What did you see instead?

The connection is closed and gRPC errors reported.

Steps to reproduce the bug

  • Create a standard gRPC client/server
  • Setup TLS on both ends (plaintext does not cause issues)
  • Add metadata header with large size such as over 150KB
  • Setup client:server side maxHeader config to above that size
  • Make the request
  • Result should be a Netty assertion error due to maxFrameSize exceeded

This occurs due to a bug in Netty that was resolved in 106.Final. gRPC is actively on 100.Final.

netty/netty#13786

Note that these more recent additions to Netty also renamed the GraalVM reflection config file. There is an integration test for the shaded Netty package to verify that file is repackaged. This test fails since the file name was renamed. Updating the name of that file fixes that issue.

This bug is currently breaking any TLS connection using large headers. We did verify updating to latest Netty does resolve.

Is it possible to update the version of Netty within gRPC to fix the underlying HTTP2 issue?

Thanks!

@nicholashagen
Copy link
Author

Here is a test I put together showing this failure: https://github.com/grpc/grpc-java/compare/master...nicholashagen:grpc-java:netty-lg-header-test?expand=1

Updating the repo to use 4.1.109.Final fixes that unit test : https://github.com/grpc/grpc-java/compare/master...nicholashagen:grpc-java:update-netty?expand=1

Note the update to ShadingTest as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants