You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Tsz-wo Sze (Jira)" <ji...@apache.org> on 2019/10/18 05:50:00 UTC

[jira] [Commented] (RATIS-719) SegmentedRaftLog#close fails with IllegalStateException

    [ 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)