You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2023/11/16 07:26:40 UTC

(dubbo) branch 3.2 updated: Fix go away handler (#13376)

This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.2 by this push:
     new 5df704b67c Fix go away handler (#13376)
5df704b67c is described below

commit 5df704b67c1708be50fb7ca821957fb2783ac140
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Thu Nov 16 15:26:33 2023 +0800

    Fix go away handler (#13376)
---
 .../java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java   | 2 +-
 .../apache/dubbo/rpc/protocol/tri/transport/TripleGoAwayHandler.java  | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
index 56752eb8fe..ba1ae2e05e 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
@@ -167,8 +167,8 @@ public class TripleHttp2Protocol extends AbstractWireProtocol implements ScopeMo
         List<ChannelHandler> handlers = new ArrayList<>();
         handlers.add(new ChannelHandlerPretender(codec));
         handlers.add(new ChannelHandlerPretender(new Http2MultiplexHandler(new ChannelDuplexHandler())));
-        handlers.add(new ChannelHandlerPretender(new TripleGoAwayHandler()));
         handlers.add(new ChannelHandlerPretender(new TriplePingPongHandler(UrlUtils.getCloseTimeout(url))));
+        handlers.add(new ChannelHandlerPretender(new TripleGoAwayHandler()));
         handlers.add(new ChannelHandlerPretender(new TripleTailHandler()));
         operator.configChannelHandler(handlers);
     }
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleGoAwayHandler.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleGoAwayHandler.java
index 3da48c1d6f..6eb8fb7515 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleGoAwayHandler.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleGoAwayHandler.java
@@ -42,7 +42,9 @@ public class TripleGoAwayHandler extends ChannelDuplexHandler {
                         + ctx.channel().remoteAddress() + " and will reconnect later.");
             }
             connectionHandler.onGoAway(ctx.channel());
+            ReferenceCountUtil.release(msg);
+            return;
         }
-        ReferenceCountUtil.release(msg);
+        super.channelRead(ctx, msg);
     }
 }