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

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new 640749bb3 RATIS-2100. The `closeFuture` never completed while closing 
from the `NEW` state (#1102)
640749bb3 is described below

commit 640749bb39a435eef9dac4a9fec2cdc75b6a939e
Author: Chung En Lee <[email protected]>
AuthorDate: Sat May 25 04:00:48 2024 +0100

    RATIS-2100. The `closeFuture` never completed while closing from the `NEW` 
state (#1102)
---
 .../main/java/org/apache/ratis/server/leader/LogAppenderDaemon.java  | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git 
a/ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderDaemon.java
 
b/ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderDaemon.java
index 847617426..5de3f3b4d 100644
--- 
a/ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderDaemon.java
+++ 
b/ratis-server/src/main/java/org/apache/ratis/server/leader/LogAppenderDaemon.java
@@ -108,8 +108,11 @@ class LogAppenderDaemon {
   };
 
   public CompletableFuture<State> tryToClose() {
-    if (lifeCycle.transition(TRY_TO_CLOSE) == CLOSING) {
+    final State state = lifeCycle.transition(TRY_TO_CLOSE);
+    if (state == CLOSING) {
       daemon.interrupt();
+    } else if (state == CLOSED) {
+      closeFuture.complete(state);
     }
     return closeFuture;
   }

Reply via email to