Client hangs when multiple requests are sent that exceed maxHeaderSize
#6000
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
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
The text was updated successfully, but these errors were encountered: