zrlw commented on issue #15233:
URL: https://github.com/apache/dubbo/issues/15233#issuecomment-2864877424

   The reason is the triple client sended header with large size meta data 
(131072) to server before calling ```HpackEncoder#setMaxHeaderListSize``` for 
the inboud settings (MAX_HEADER_LIST_SIZE=32768) received from the server,  the 
header size exceeded max allowed size (40960), so the sever responded GO_AWAY 
frame.
   
   set breakpoint at the client OUTBOUND:
   ```
   09:33:19.333 |-DEBUG [NettyClientWorker-4-1]                                
H2_CLIENT:214 -| [id: 0x760dcf34, L:/192.168.122.75:64974 - 
R:/192.168.122.75:50052] OUTBOUND HEADERS: streamId=3 
headers=DefaultHttp2Headers[:scheme: http, :authority: 127.0.0.1:50052, 
:method: POST, :path: /org.apache.dubbo.sample.tri.Greeter/greet, content-type: 
application/grpc+proto, te: trailers, grpc-timeout: 300000m, 
tri-consumer-appname: org.apache.dubbo.sample.tri.direct.TriDirectClientTest, 
grpc-accept-encoding: gzip,snappy, timeout: 300000, large-size-meta: 
   aaaaaaaaaa...] padding=0 endStream=false 
   <== the length of 'aaaa...' is 131072
   
   
   09:34:26.676 |-DEBUG [NettyClientWorker-4-1]                                
H2_CLIENT:214 -| [id: 0x760dcf34, L:/192.168.122.75:64974 - 
R:/192.168.122.75:50052] INBOUND SETTINGS: ack=false 
settings={HEADER_TABLE_SIZE=4096, MAX_CONCURRENT_STREAMS=2147483647, 
INITIAL_WINDOW_SIZE=8388608, MAX_FRAME_SIZE=8388608, MAX_HEADER_LIST_SIZE=32768}
   <== received setting frame which contains MAX_HEADER_LIST_SIZE=32768
   ```
   
   server log:
   ```
   09:34:26.622 |-WARN  [NettyServerWorker-5-1] 
.transport.TripleServerConnectionHandler:    -|  [DUBBO] Channel:[id: 
0x6b546e25, L:/192.168.122.75:50052 - R:/192.168.122.75:64889] Error, dubbo 
version: 3.3.4-SNAPSHOT, current host: 192.168.122.75, error code: 4-14. This 
may be caused by , go to https://dubbo.apache.org/faq/4/14 to find 
instructions. 
   io.netty.handler.codec.http2.Http2Exception: Header size exceeded max 
allowed size (40960)
        at 
io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:98)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.Http2CodecUtil.headerListSizeExceeded(Http2CodecUtil.java:243)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
   <== received large header
   ... ... ...
   09:34:26.670 |-DEBUG [NettyServerWorker-5-2]                                
H2_SERVER:214 -| [id: 0x9e812d00, L:/192.168.122.75:50052 - 
R:/192.168.122.75:64974] OUTBOUND SETTINGS: ack=false 
settings={HEADER_TABLE_SIZE=4096, MAX_CONCURRENT_STREAMS=2147483647, 
INITIAL_WINDOW_SIZE=8388608, MAX_FRAME_SIZE=8388608, MAX_HEADER_LIST_SIZE=32768}
   <== sent setting frame to client
   
   09:34:26.671 |-DEBUG [NettyServerWorker-5-2]                                
H2_SERVER:214 -| [id: 0x9e812d00, L:/192.168.122.75:50052 - 
R:/192.168.122.75:64974] OUTBOUND WINDOW_UPDATE: streamId=0 
windowSizeIncrement=16646146
   09:34:26.672 |-DEBUG [NettyServerWorker-5-1]                                
H2_SERVER:214 -| [id: 0x6b546e25, L:/192.168.122.75:50052 - 
R:/192.168.122.75:64889] OUTBOUND GO_AWAY: lastStreamId=0 errorCode=0 length=0 
bytes=
   <== sent go away frame to client
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to