Skip to content

RATIS-2427. Close LogAppender for illegalStateException#1369

Open
symious wants to merge 1 commit intoapache:masterfrom
symious:RATIS-2427
Open

RATIS-2427. Close LogAppender for illegalStateException#1369
symious wants to merge 1 commit intoapache:masterfrom
symious:RATIS-2427

Conversation

@symious
Copy link
Contributor

@symious symious commented Mar 9, 2026

What changes were proposed in this pull request?

We met the following exception.

2026-03-08 13:51:10,388 [91193815-8c02-4e50-8cdc-792d6a5c1cdd@group-55811D60EE83->8e3e9d6b-d6d2-4ee4-b6ac-b310cf7117f1-GrpcLogAppender-LogAppenderDaemon] WARN org.apache.ratis.server.leader.LogAppenderDaemon: 91193815-8c02-4e50-8cdc-792d6a5c1cdd@group-55811D60EE83->8e3e9d6b-d6d2-4ee4-b6ac-b310cf7117f1-GrpcLogAppender-LogAppenderDaemon failed
java.lang.IllegalStateException: 91193815-8c02-4e50-8cdc-792d6a5c1cdd@group-55811D60EE83-SegmentedRaftLog is expected to be opened but it is CLOSED
        at org.apache.ratis.util.OpenCloseState.assertOpen(OpenCloseState.java:63)
        at org.apache.ratis.server.raftlog.RaftLogBase.checkLogState(RaftLogBase.java:112)
        at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog.getLastEntryTermIndex(SegmentedRaftLog.java:356)
        at org.apache.ratis.server.raftlog.RaftLog.getNextIndex(RaftLog.java:83)
        at org.apache.ratis.grpc.server.GrpcLogAppender.shouldNotifyToInstallSnapshot(GrpcLogAppender.java:826)
        at org.apache.ratis.grpc.server.GrpcLogAppender.installSnapshot(GrpcLogAppender.java:247)
        at org.apache.ratis.grpc.server.GrpcLogAppender.run(GrpcLogAppender.java:261)
        at org.apache.ratis.server.leader.LogAppenderDaemon.run(LogAppenderDaemon.java:80)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.ratis.util.OpenCloseState$CloseTrace: Close 91193815-8c02-4e50-8cdc-792d6a5c1cdd@group-55811D60EE83-SegmentedRaftLog
        at org.apache.ratis.util.OpenCloseState.lambda$close$1(OpenCloseState.java:109)
        at java.util.concurrent.atomic.AtomicReference.getAndUpdate(AtomicReference.java:160)
        at org.apache.ratis.util.OpenCloseState.close(OpenCloseState.java:109)
        at org.apache.ratis.server.raftlog.RaftLogBase.close(RaftLogBase.java:386)
        at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog.close(SegmentedRaftLog.java:528)
        at org.apache.ratis.server.raftlog.RaftLogBase.lambda$appendImpl$3(RaftLogBase.java:203)
        at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774)
        at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:750)
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:488)
        at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1990)
        at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog$Task.failed(SegmentedRaftLog.java:109)
        at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLogWorker$WriteLog.failed(SegmentedRaftLogWorker.java:527)
        at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLogWorker.run(SegmentedRaftLogWorker.java:324)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        ... 1 more 

And this ticket is to skip the restart for this case, all it will restart forever.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/RATIS-2427

How was this patch tested?

Test locally.

@szetszwo
Copy link
Contributor

szetszwo commented Mar 9, 2026

... it will restart forever.

When the log has been closed, the server should shut down. So, how could it restart forever?

@symious
Copy link
Contributor Author

symious commented Mar 10, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants