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

   i tested ```TriDirectClientTest``` and found the issue will be triggered if 
```TripleServerConnectionHandler``` throwed ```Http2Exception``` with ```Header 
size exceeded max allowed size (40960)```.
   ```
   19:42:13.182 |-WARN  [NettyServerWorker-5-1] 
.transport.TripleServerConnectionHandler:    -|  [DUBBO] Channel:[id: 
0x08bce973, L:/192.168.122.75:50052 - R:/192.168.122.75:57032] 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]
        at 
io.netty.handler.codec.http2.DefaultHttp2FrameReader$HeadersBlockBuilder.headerSizeExceeded(DefaultHttp2FrameReader.java:688)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DefaultHttp2FrameReader$HeadersBlockBuilder.addFragment(DefaultHttp2FrameReader.java:717)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DefaultHttp2FrameReader$2.processFragment(DefaultHttp2FrameReader.java:473)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DefaultHttp2FrameReader.readContinuationFrame(DefaultHttp2FrameReader.java:602)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:271)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:164)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:39)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:186)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DecoratingHttp2ConnectionDecoder.decodeFrame(DecoratingHttp2ConnectionDecoder.java:61)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.DecoratingHttp2ConnectionDecoder.decodeFrame(DecoratingHttp2ConnectionDecoder.java:61)
 ~[netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:391)
 [netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:451)
 [netty-codec-http2-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530)
 [netty-codec-base-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469)
 [netty-codec-base-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
 [netty-codec-base-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:359)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1429)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:167)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:445)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:383)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:577) 
[netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.nio.NioIoHandler.processSelectedKeysOptimized(NioIoHandler.java:552)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:493) 
[netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:470) 
[netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:204)
 [netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:175) 
[netty-transport-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
 [netty-common-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
[netty-common-4.2.0.Final.jar:4.2.0.Final]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [netty-common-4.2.0.Final.jar:4.2.0.Final]
        at java.lang.Thread.run(Thread.java:840) [?:?]
   19:42:13.203 |-DEBUG [NettyServerWorker-5-1]                                
H2_SERVER:214 -| [id: 0x08bce973, L:/192.168.122.75:50052 - 
R:/192.168.122.75:57032] OUTBOUND GO_AWAY: lastStreamId=0 errorCode=0 length=0 
bytes=
   ```
   the code of ```DefaultHttp2FrameReader``` line #271 is 
```readContinuationFrame(in, listener)```:
   ```
   private void processPayloadState(ChannelHandlerContext ctx, ByteBuf in, 
Http2FrameListener listener)
                       throws Http2Exception {
       ...
       switch (frameType) {
            ...
           case CONTINUATION:
                   readContinuationFrame(in, listener);  <== line #271
                   break;
   ```


-- 
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: notifications-unsubscr...@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org
For additional commands, e-mail: notifications-h...@dubbo.apache.org

Reply via email to