From 36422c52c95272e73579e2eb0cb9e72a8659b6ed Mon Sep 17 00:00:00 2001 From: sunhangda Date: Fri, 2 Jul 2021 15:36:53 +0800 Subject: [PATCH 1/3] [ISSUE #3066]producing a ghost consumer --- .../rocketmq/client/impl/factory/MQClientInstance.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java index 81e6d8468e..976dcba17d 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java @@ -863,7 +863,7 @@ public class MQClientInstance { } } - public boolean registerConsumer(final String group, final MQConsumerInner consumer) { + public synchronized boolean registerConsumer(final String group, final MQConsumerInner consumer) { if (null == group || null == consumer) { return false; } @@ -877,9 +877,9 @@ public class MQClientInstance { return true; } - public void unregisterConsumer(final String group) { + public synchronized void unregisterConsumer(final String group) { this.consumerTable.remove(group); - this.unregisterClientWithLock(null, group); + this.unregisterClient(null, group); } private void unregisterClientWithLock(final String producerGroup, final String consumerGroup) { From 4e5a60cb62e1fcb3b72f90c9262348a37c28e61d Mon Sep 17 00:00:00 2001 From: sunhangda Date: Fri, 2 Jul 2021 15:48:46 +0800 Subject: [PATCH 2/3] [ISSUE #2442] when happening system busy, retry --- .../rocketmq/client/impl/producer/DefaultMQProducerImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java index fac3ed3561..6238e3e2f0 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java @@ -633,6 +633,7 @@ public class DefaultMQProducerImpl implements MQProducerInner { case ResponseCode.TOPIC_NOT_EXIST: case ResponseCode.SERVICE_NOT_AVAILABLE: case ResponseCode.SYSTEM_ERROR: + case ResponseCode.SYSTEM_BUSY: case ResponseCode.NO_PERMISSION: case ResponseCode.NO_BUYER_ID: case ResponseCode.NOT_IN_CURRENT_UNIT: From 062e6f33e547b7290f75a0adde3a8f6211c454c3 Mon Sep 17 00:00:00 2001 From: sunhangda Date: Fri, 2 Jul 2021 17:36:51 +0800 Subject: [PATCH 3/3] revert [ISSUE #2442] when happening system busy, retry --- .../rocketmq/client/impl/producer/DefaultMQProducerImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java index 6238e3e2f0..fac3ed3561 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/producer/DefaultMQProducerImpl.java @@ -633,7 +633,6 @@ public class DefaultMQProducerImpl implements MQProducerInner { case ResponseCode.TOPIC_NOT_EXIST: case ResponseCode.SERVICE_NOT_AVAILABLE: case ResponseCode.SYSTEM_ERROR: - case ResponseCode.SYSTEM_BUSY: case ResponseCode.NO_PERMISSION: case ResponseCode.NO_BUYER_ID: case ResponseCode.NOT_IN_CURRENT_UNIT: