You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2022/09/23 08:54:45 UTC
[rocketmq] branch develop updated: [ISSUE #5095] [Remoting-D] Not handle more request when channel write ability changed to un-writeable (#5176)
This is an automated email from the ASF dual-hosted git repository.
lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new e7850f63e [ISSUE #5095] [Remoting-D] Not handle more request when channel write ability changed to un-writeable (#5176)
e7850f63e is described below
commit e7850f63e58d9879997785572e26b55866272bfb
Author: lizhimins <70...@qq.com>
AuthorDate: Fri Sep 23 16:54:38 2022 +0800
[ISSUE #5095] [Remoting-D] Not handle more request when channel write ability changed to un-writeable (#5176)
Co-authored-by: 斜阳 <te...@alibaba-inc.com>
---
.../rocketmq/remoting/netty/NettyRemotingServer.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
index a80434545..5af8c7621 100644
--- a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
+++ b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingServer.java
@@ -515,6 +515,23 @@ public class NettyRemotingServer extends NettyRemotingAbstract implements Remoti
// The related remoting server has been shutdown, so close the connected channel
RemotingUtil.closeChannel(ctx.channel());
}
+
+ @Override
+ public void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception {
+ Channel channel = ctx.channel();
+ if (channel.isWritable()) {
+ if (!channel.config().isAutoRead()) {
+ channel.config().setAutoRead(true);
+ log.info("Channel[{}] turns writable, bytes to buffer before changing channel to un-writable: {}",
+ RemotingHelper.parseChannelRemoteAddr(channel), channel.bytesBeforeUnwritable());
+ }
+ } else {
+ channel.config().setAutoRead(false);
+ log.warn("Channel[{}] auto-read is disabled, bytes to drain before it turns writable: {}",
+ RemotingHelper.parseChannelRemoteAddr(channel), channel.bytesBeforeWritable());
+ }
+ super.channelWritabilityChanged(ctx);
+ }
}
@ChannelHandler.Sharable