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);
});
}
}