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 6a8b1aa96 [ISSUE#4917] Optimize the retry logic in appending a no-op 
request when controller change to leader (#4918)
6a8b1aa96 is described below

commit 6a8b1aa96b8997a185616c0cbe05e1663bc5fd88
Author: TheR1sing3un <[email protected]>
AuthorDate: Tue Aug 30 08:43:03 2022 +0800

    [ISSUE#4917] Optimize the retry logic in appending a no-op request when 
controller change to leader (#4918)
---
 .../apache/rocketmq/controller/impl/DLedgerController.java | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git 
a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
 
b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
index 1e34aad97..3a00dec73 100644
--- 
a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
+++ 
b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerController.java
@@ -440,10 +440,16 @@ public class DLedgerController implements Controller {
                                 }
                             } catch (final Throwable e) {
                                 log.error("Error happen when controller leader 
append initial request to dledger", e);
-                                tryTimes++;
-                                if (tryTimes % 3 == 0) {
-                                    log.warn("Controller leader append initial 
log failed too many times, please wait a while");
-                                }
+                            }
+                            if 
(!DLedgerController.this.getMemberState().isLeader()) {
+                                // now is not a leader
+                                log.error("Append a initial log failed because 
current state is not leader");
+                                break;
+                            }
+                            tryTimes++;
+                            log.error(String.format("Controller leader append 
initial log failed, try %d times", tryTimes));
+                            if (tryTimes % 3 == 0) {
+                                log.warn("Controller leader append initial log 
failed too many times, please wait a while");
                             }
                         }
                         break;

Reply via email to