[
https://issues.apache.org/jira/browse/RATIS-2427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Janus Chow updated RATIS-2427:
------------------------------
Description:
We met the following exception.
{code:java}
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 {code}
And this ticket is to skip the restart for this case.
was:
We met the following exception.
{code:java}
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 {code}
> Do not restart LogAppender on IllegalStateException
> ---------------------------------------------------
>
> Key: RATIS-2427
> URL: https://issues.apache.org/jira/browse/RATIS-2427
> Project: Ratis
> Issue Type: Bug
> Reporter: Janus Chow
> Assignee: Janus Chow
> Priority: Major
>
> We met the following exception.
> {code:java}
> 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 {code}
> And this ticket is to skip the restart for this case.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)