[ 
https://issues.apache.org/jira/browse/RATIS-719?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16954282#comment-16954282
 ] 

Tsz-wo Sze commented on RATIS-719:
----------------------------------

The group was removed by groupRemoveAsync so that the log was closed.  After 
that the LogAppender failed to read the log.  It seems not a bug but the 
message could be improved.

> SegmentedRaftLog#close fails with IllegalStateException
> -------------------------------------------------------
>
>                 Key: RATIS-719
>                 URL: https://issues.apache.org/jira/browse/RATIS-719
>             Project: Ratis
>          Issue Type: Bug
>          Components: server
>            Reporter: Lokesh Jain
>            Priority: Major
>
>  
> {code:java}
> Exception in thread 
> "org.apache.ratis.server.impl.LogAppender$AppenderDaemon$$Lambda$343/1887343319@5d317807"
>  java.lang.IllegalArgumentException: 
> 7cd8590b-b724-4d53-8888-a565ab6706c7@group-E476037E5613-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.RaftLog.checkLogState(RaftLog.java:102)
>       at 
> org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog.getLastEntryTermIndex(SegmentedRaftLog.java:345)
>       at 
> org.apache.ratis.server.raftlog.RaftLog.getNextIndex(RaftLog.java:148)
>       at 
> org.apache.ratis.server.impl.LeaderState.addAndStartSenders(LeaderState.java:384)
>       at 
> org.apache.ratis.server.impl.LeaderState.restartSender(LeaderState.java:410)
>       at 
> org.apache.ratis.server.impl.LogAppender$AppenderDaemon.run(LogAppender.java:93)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.ratis.util.OpenCloseState$CloseTrace: Close 
> 7cd8590b-b724-4d53-8888-a565ab6706c7@group-E476037E5613-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.RaftLog.close(RaftLog.java:437)
>       at 
> org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog.close(SegmentedRaftLog.java:500)
>       at org.apache.ratis.server.impl.ServerState.close(ServerState.java:389)
>       at 
> org.apache.ratis.server.impl.RaftServerImpl.lambda$shutdown$3(RaftServerImpl.java:275)
>       at 
> org.apache.ratis.util.LifeCycle.lambda$checkStateAndClose$2(LifeCycle.java:231)
>       at 
> org.apache.ratis.util.LifeCycle.checkStateAndClose(LifeCycle.java:251)
>       at 
> org.apache.ratis.util.LifeCycle.checkStateAndClose(LifeCycle.java:229)
>       at 
> org.apache.ratis.server.impl.RaftServerImpl.shutdown(RaftServerImpl.java:252)
>       at 
> org.apache.ratis.server.impl.RaftServerProxy.lambda$groupRemoveAsync$12(RaftServerProxy.java:406)
>       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:404)
>       at 
> org.apache.ratis.server.impl.RaftServerProxy.groupManagementAsync(RaftServerProxy.java:367)
>       at 
> org.apache.ratis.grpc.server.GrpcAdminProtocolService.lambda$groupManagement$0(GrpcAdminProtocolService.java:42)
>       at org.apache.ratis.grpc.GrpcUtil.asyncCall(GrpcUtil.java:140)
>       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:710)
>       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:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>       ... 1 more
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to