From 975c232f3e5fc0b7f44ff5812af041360aa23421 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 30 Jul 2022 18:54:48 +0800 Subject: [PATCH] [ISSUE #4726] Return error when unregisterBroker is failed --- .../java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java | 5 ++++- .../rocketmq/namesrv/processor/DefaultRequestProcessor.java | 4 +++- .../apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java | 1 - 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java b/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java index 2000ddb394..38cf16ee22 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/out/BrokerOuterAPI.java @@ -531,7 +531,7 @@ public class BrokerOuterAPI { this.unregisterBroker(namesrvAddr, clusterName, brokerAddr, brokerName, brokerId); LOGGER.info("unregisterBroker OK, NamesrvAddr: {}", namesrvAddr); } catch (Exception e) { - LOGGER.warn("unregisterBroker Exception, {}", namesrvAddr, e); + LOGGER.warn("unregisterBroker Exception, NamesrvAddr: {}", namesrvAddr, e); } } } @@ -557,6 +557,9 @@ public class BrokerOuterAPI { case ResponseCode.SUCCESS: { return; } + case ResponseCode.SYSTEM_ERROR: { + throw new MQBrokerException(response.getCode(), response.getRemark(), brokerAddr); + } default: break; } diff --git a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java index 09069eaf8a..6767176895 100644 --- a/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java +++ b/namesrv/src/main/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessor.java @@ -349,8 +349,10 @@ public class DefaultRequestProcessor implements NettyRequestProcessor { if (!this.namesrvController.getRouteInfoManager().submitUnRegisterBrokerRequest(requestHeader)) { log.warn("Couldn't submit the unregister broker request to handler, broker info: {}", requestHeader); + response.setCode(ResponseCode.SYSTEM_ERROR); + response.setRemark(null); + return response; } - response.setCode(ResponseCode.SUCCESS); response.setRemark(null); return response; diff --git a/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java b/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java index 7a3bf18448..91f14a3721 100644 --- a/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java +++ b/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java @@ -489,7 +489,6 @@ public class RouteInfoManager { } private int operateWritePermOfBroker(final String brokerName, final int requestCode) { - Set changedTopics = new HashSet<>(); int topicCnt = 0; Iterator>> itTopic = this.topicQueueTable.entrySet().iterator();