[
https://issues.apache.org/jira/browse/RATIS-2427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tsz-wo Sze resolved RATIS-2427.
-------------------------------
Fix Version/s: 3.3.0
Resolution: Fixed
The pull request is now merged. Thanks, [~Symious]!
> Do not restart LogAppender on IllegalStateException
> ---------------------------------------------------
>
> Key: RATIS-2427
> URL: https://issues.apache.org/jira/browse/RATIS-2427
> Project: Ratis
> Issue Type: Bug
> Components: Leader
> Reporter: Janus Chow
> Assignee: Janus Chow
> Priority: Major
> Fix For: 3.3.0
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> 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)