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

jinrongtong pushed a commit to branch 5.0.0-beta-dledger-controller
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/5.0.0-beta-dledger-controller 
by this push:
     new 6645d0a42 [Summer of code] Let controller become role state after 
append initial logs (#4442)
6645d0a42 is described below

commit 6645d0a42b743fc003ed54658cd24e99c375ac8b
Author: hzh0425 <[email protected]>
AuthorDate: Fri Jun 10 13:59:37 2022 +0800

    [Summer of code] Let controller become role state after append initial logs 
(#4442)
    
    * fix bug
    
    * fix bug
---
 .../java/org/apache/rocketmq/controller/impl/DLedgerController.java     | 2 +-
 .../apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java  | 2 +-
 2 files changed, 2 insertions(+), 2 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 c8c213714..e99036817 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
@@ -403,7 +403,6 @@ public class DLedgerController implements Controller {
                         DLedgerController.this.stopScheduling();
                         break;
                     case LEADER: {
-                        this.currentRole = MemberState.Role.LEADER;
                         log.info("Controller {} change role to leader, try 
process a initial proposal", this.selfId);
                         // Because the role becomes to leader, but the memory 
statemachine of the controller is still in the old point,
                         // some committed logs have not been applied. 
Therefore, we must first process an empty request to dledger,
@@ -414,6 +413,7 @@ public class DLedgerController implements Controller {
                             request.setBody(new byte[0]);
                             try {
                                 if (appendToDledgerAndWait(request)) {
+                                    this.currentRole = MemberState.Role.LEADER;
                                     DLedgerController.this.startScheduling();
                                     break;
                                 }
diff --git 
a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
 
b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
index 4cfe3c5bd..7679adc36 100644
--- 
a/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
+++ 
b/controller/src/main/java/org/apache/rocketmq/controller/impl/DLedgerControllerStateMachine.java
@@ -54,8 +54,8 @@ public class DLedgerControllerStateMachine implements 
StateMachine {
             if (body != null && body.length > 0) {
                 final EventMessage event = 
this.eventSerializer.deserialize(body);
                 this.replicasInfoManager.applyEvent(event);
-                applyingSize++;
             }
+            applyingSize++;
         }
         log.info("Apply {} events on controller {}", applyingSize, 
this.dledgerId);
     }

Reply via email to