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

jinrongtong 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 a64c0f206 [ISSUE #4736] Optimize ReplicasManager#start method retry 
logic (#4737)
a64c0f206 is described below

commit a64c0f206a47cb73c763738c1302a1c2c17ec81a
Author: mxsm <[email protected]>
AuthorDate: Sun Jul 31 19:42:25 2022 +0800

    [ISSUE #4736] Optimize ReplicasManager#start method retry logic (#4737)
---
 .../rocketmq/broker/controller/ReplicasManager.java     | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git 
a/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
 
b/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
index 3ba11ccfd..4e0517940 100644
--- 
a/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
+++ 
b/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java
@@ -37,9 +37,9 @@ import org.apache.rocketmq.common.Pair;
 import org.apache.rocketmq.common.ThreadFactoryImpl;
 import org.apache.rocketmq.common.constant.LoggerName;
 import org.apache.rocketmq.common.protocol.body.SyncStateSet;
-import 
org.apache.rocketmq.common.protocol.header.namesrv.controller.RegisterBrokerToControllerResponseHeader;
 import 
org.apache.rocketmq.common.protocol.header.namesrv.controller.GetMetaDataResponseHeader;
 import 
org.apache.rocketmq.common.protocol.header.namesrv.controller.GetReplicaInfoResponseHeader;
+import 
org.apache.rocketmq.common.protocol.header.namesrv.controller.RegisterBrokerToControllerResponseHeader;
 import org.apache.rocketmq.logging.InternalLogger;
 import org.apache.rocketmq.logging.InternalLoggerFactory;
 import org.apache.rocketmq.store.config.BrokerRole;
@@ -102,16 +102,19 @@ public class ReplicasManager {
         if (!startBasicService()) {
             LOGGER.error("Failed to start replicasManager");
             this.executorService.submit(() -> {
-                int tryTimes = 1;
-                while (!startBasicService()) {
-                    tryTimes++;
-                    LOGGER.error("Failed to start replicasManager, try 
times:{}, current state:{}, try it again", tryTimes, this.state);
+                int retryTimes = 0;
+                do {
                     try {
-                        Thread.sleep(1000);
+                        TimeUnit.SECONDS.sleep(1);
                     } catch (InterruptedException ignored) {
+
                     }
+                    retryTimes++;
+                    LOGGER.warn("Failed to start replicasManager, retry 
times:{}, current state:{}, try it again", retryTimes, this.state);
                 }
-                LOGGER.info("Start replicasManager success, try times:{}", 
tryTimes);
+                while (!startBasicService());
+
+                LOGGER.info("Start replicasManager success, retry times:{}", 
retryTimes);
             });
         }
     }

Reply via email to