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

lizhimin 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 0b0f8ec946 [ISSUE #8599] Fix send fail without retry when get GO_AWAY 
twice (#8603)
0b0f8ec946 is described below

commit 0b0f8ec946e58b2e032328b0f06960962afcca03
Author: qianye <[email protected]>
AuthorDate: Thu Sep 5 14:16:43 2024 +0800

    [ISSUE #8599] Fix send fail without retry when get GO_AWAY twice (#8603)
---
 .../java/org/apache/rocketmq/client/producer/DefaultMQProducer.java    | 3 ++-
 .../org/apache/rocketmq/client/producer/DefaultMQProducerTest.java     | 2 +-
 .../java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git 
a/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
 
b/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
index 3ecd5987c3..b47c01f676 100644
--- 
a/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
+++ 
b/client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
@@ -79,7 +79,8 @@ public class DefaultMQProducer extends ClientConfig 
implements MQProducer {
         ResponseCode.SYSTEM_BUSY,
         ResponseCode.NO_PERMISSION,
         ResponseCode.NO_BUYER_ID,
-        ResponseCode.NOT_IN_CURRENT_UNIT
+        ResponseCode.NOT_IN_CURRENT_UNIT,
+        ResponseCode.GO_AWAY
     ));
 
     /**
diff --git 
a/client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java
 
b/client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java
index 96086c7a25..be277f69bc 100644
--- 
a/client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java
+++ 
b/client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java
@@ -769,7 +769,7 @@ public class DefaultMQProducerTest {
     @Test
     public void assertGetRetryResponseCodes() {
         assertNotNull(producer.getRetryResponseCodes());
-        assertEquals(7, producer.getRetryResponseCodes().size());
+        assertEquals(8, producer.getRetryResponseCodes().size());
     }
 
     @Test
diff --git 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
index 6f61e75e01..9f3136195b 100644
--- 
a/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
+++ 
b/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
@@ -278,6 +278,7 @@ public abstract class NettyRemotingAbstract {
                     "please go away");
                 response.setOpaque(opaque);
                 writeResponse(ctx.channel(), cmd, response);
+                log.info("proxy is shutting down, write response GO_AWAY. 
channel={}, requestCode={}, opaque={}", ctx.channel(), cmd.getCode(), opaque);
                 return;
             }
         }

Reply via email to