[
https://issues.apache.org/jira/browse/RATIS-389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tsz-wo Sze resolved RATIS-389.
------------------------------
Resolution: Duplicate
>From the stack trace, the server had already shutdown but the LogAppender kept
>reading from the RaftLog. It turns out that this was fixed by RATIS-1928
>"join the LogAppender when closing the server". Resolving as a duplicate.
> Unexpected State in Segmented RaftLog while shutting down LeaderState
> ---------------------------------------------------------------------
>
> Key: RATIS-389
> URL: https://issues.apache.org/jira/browse/RATIS-389
> Project: Ratis
> Issue Type: Bug
> Components: server
> Reporter: Mukul Kumar Singh
> Priority: Major
>
> After shutting down the leaderState, the Log Appender throws the following
> exception.
> {code}
> 2018-11-02 06:00:11,500 INFO org.apache.ratis.server.impl.RaftServerImpl:
> 2dd779ad-06e5-4dfa-9228-664511cc2d18 closes. The last applied log index is
> 57969
> 2018-11-02 06:00:11,500 ERROR org.apache.ratis.server.impl.LogAppender:
> GrpcLogAppender(2dd779ad-06e5-4dfa-9228-664511cc2d18 ->
> 30150210-575a-4bd8-b6f2-62a56d2d0a8b) unexpected exception
> java.lang.IllegalArgumentException:
> 2dd779ad-06e5-4dfa-9228-664511cc2d18-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.storage.RaftLog.checkLogState(RaftLog.java:80)
> at
> org.apache.ratis.server.storage.SegmentedRaftLog.get(SegmentedRaftLog.java:175)
> at
> org.apache.ratis.server.storage.SegmentedRaftLog.getEntryWithData(SegmentedRaftLog.java:200)
> at
> org.apache.ratis.server.impl.LogAppender.createRequest(LogAppender.java:207)
> at
> org.apache.ratis.grpc.server.GrpcLogAppender.appendLog(GrpcLogAppender.java:152)
> at
> org.apache.ratis.grpc.server.GrpcLogAppender.runAppenderImpl(GrpcLogAppender.java:96)
> at
> org.apache.ratis.server.impl.LogAppender.runAppender(LogAppender.java:100)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.ratis.util.OpenCloseState$CloseTrace: Close
> 2dd779ad-06e5-4dfa-9228-664511cc2d18-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.storage.RaftLog.close(RaftLog.java:336)
> at
> org.apache.ratis.server.storage.SegmentedRaftLog.close(SegmentedRaftLog.java:425)
> at
> org.apache.ratis.server.impl.ServerState.close(ServerState.java:388)
> at
> org.apache.ratis.server.impl.RaftServerImpl.lambda$shutdown$3(RaftServerImpl.java:260)
> at
> org.apache.ratis.util.LifeCycle.checkStateAndClose(LifeCycle.java:219)
> at
> org.apache.ratis.server.impl.RaftServerImpl.shutdown(RaftServerImpl.java:237)
> at
> org.apache.ratis.server.impl.RaftServerProxy.lambda$groupRemoveAsync$12(RaftServerProxy.java:387)
> at
> java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
> at
> java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:614)
> at
> java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1983)
> at
> org.apache.ratis.server.impl.RaftServerProxy.groupRemoveAsync(RaftServerProxy.java:385)
> at
> org.apache.ratis.server.impl.RaftServerProxy.groupManagementAsync(RaftServerProxy.java:348)
> at
> org.apache.ratis.grpc.server.GrpcAdminProtocolService.lambda$groupManagement$0(GrpcAdminProtocolService.java:42)
> at org.apache.ratis.grpc.GrpcUtil.asyncCall(GrpcUtil.java:115)
> at
> org.apache.ratis.grpc.server.GrpcAdminProtocolService.groupManagement(GrpcAdminProtocolService.java:42)
> at
> org.apache.ratis.proto.grpc.AdminProtocolServiceGrpc$MethodHandlers.invoke(AdminProtocolServiceGrpc.java:361)
> at
> org.apache.ratis.thirdparty.io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:171)
> at
> org.apache.ratis.thirdparty.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:283)
> at
> org.apache.ratis.thirdparty.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:707)
> at
> org.apache.ratis.thirdparty.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
> at
> org.apache.ratis.thirdparty.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> ... 1 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)