[ 
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, all it will restart 
forever.

  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}
And this ticket is to skip the restart for this case.


> 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, all it will restart 
> forever.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to