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

Client hangs when multiple requests are sent that exceed maxHeaderSize #6000

Closed
dilanSachi opened this issue Jan 30, 2024 · 2 comments
Closed
Assignees
Labels
Area/http2 module/grpc module/http Reason/Complex Issue occurred due to complex scenario. Team/PCM Protocol connector packages related issues Type/Bug
Milestone

Comments

@dilanSachi
Copy link
Contributor

Description:
When a request that exceeds the maxHeaderSize is sent, it returns 431 successfully. However, when a second request that exceeds the header size is sent, client hangs. This is noticeable in gRPC and not noticeable in HTTP.

What happens is, when the server and client exchanges their settings via SETTINGS frames in the connection initialization, client gets to know the maxHeaderSize that is allowed by the server. In this instance, netty has a flag [1] to enable header size check before writing the headers to the network. When this results in an error, the transport implementation does not have a path to handle the error flow. One option is to enable the flag to not check the headers before sending the request. This way, server will check the header length and return with error.

Other option is to fix the error flow. I feel this is the most appropriate solution.

[1] https://github.com/netty/netty/blob/4.1/codec-http2/src/main/java/io/netty/handler/codec/http2/HpackEncoder.java#L121

@dilanSachi dilanSachi added Type/Bug module/http Team/PCM Protocol connector packages related issues Area/http2 labels Jan 30, 2024
@dilanSachi dilanSachi self-assigned this Jan 30, 2024
@dilanSachi
Copy link
Contributor Author

Update - This was noticed in http as well (2201.8.4).

Copy link

github-actions bot commented Feb 1, 2024

This issue is NOT closed with a proper Reason/ label. Make sure to add proper reason label before closing. Please add or leave a comment with the proper reason label now.

      - Reason/EngineeringMistake - The issue occurred due to a mistake made in the past.
      - Reason/Regression - The issue has introduced a regression.
      - Reason/MultipleComponentInteraction - Issue occured due to interactions in multiple components.
      - Reason/Complex - Issue occurred due to complex scenario.
      - Reason/Invalid - Issue is invalid.
      - Reason/Other - None of the above cases.

@dilanSachi dilanSachi added the Reason/Complex Issue occurred due to complex scenario. label Feb 1, 2024
@dilanSachi dilanSachi added this to the 2201.8.5 milestone Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area/http2 module/grpc module/http Reason/Complex Issue occurred due to complex scenario. Team/PCM Protocol connector packages related issues Type/Bug
Projects
Archived in project
Development

No branches or pull requests

1 participant