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

How to handle http2 connection when running out of http2 stream id in Dubbo3.x #13731

Closed
PaulTan94 opened this issue Feb 2, 2024 · 2 comments
Labels
type/discussion Everything related with code discussion or question

Comments

@PaulTan94
Copy link

PaulTan94 commented Feb 2, 2024

A http2 conneciton could run out of streamid in condition of 1.8w unarycall per second after 22h, which would make the connection totally unusable for the following unarycall, any idea to gracefully handle the http2 connection when running out of http2 stream id in Dubbo3.x?

Caused by: io.netty.handler.codec.http2.Http2NoMoreStreamIdsException: No more streams can be created on this connection
	at io.netty.handler.codec.http2.Http2FrameCodec.initializeNewStream(Http2FrameCodec.java:468)
	at io.netty.handler.codec.http2.Http2FrameCodec.writeHeadersFrame(Http2FrameCodec.java:410)
	at io.netty.handler.codec.http2.Http2FrameCodec.write(Http2FrameCodec.java:312)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
	at io.netty.handler.codec.http2.AbstractHttp2StreamChannel.write0(AbstractHttp2StreamChannel.java:1137)
	at io.netty.handler.codec.http2.AbstractHttp2StreamChannel$Http2ChannelUnsafe.writeHttp2StreamFrame(AbstractHttp2StreamChannel.java:990)
	at io.netty.handler.codec.http2.AbstractHttp2StreamChannel$Http2ChannelUnsafe.write(AbstractHttp2StreamChannel.java:961)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:877)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
	at com.alibaba.dubbo.rpc.protocol.tri.command.HeaderQueueCommand.doSend(HeaderQueueCommand.java:56)
	at com.alibaba.dubbo.rpc.protocol.tri.command.QueuedCommand.send(QueuedCommand.java:58)
	at com.alibaba.dubbo.rpc.protocol.tri.transport.TripleCommandOutBoundHandler.write(TripleCommandOutBoundHandler.java:31)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:851)
	at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1010)
	at io.netty.handler.codec.http2.AbstractHttp2StreamChannel.write(AbstractHttp2StreamChannel.java:504)
	... 14 more
@PaulTan94 PaulTan94 added the type/discussion Everything related with code discussion or question label Feb 2, 2024
@AlbumenJ
Copy link
Member

AlbumenJ commented Feb 4, 2024

Please try the latest version. This has been fixed.

@AlbumenJ
Copy link
Member

AlbumenJ commented Mar 8, 2024

No news is good news. Please feel free to create a new issue if you have any question.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/discussion Everything related with code discussion or question
Projects
Archived in project
Development

No branches or pull requests

2 participants