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

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

[~avijayan], thanks for working on this.
 - In RaftServerMetrics.addPeerCommitIndexGauge, it only needs an id instead of 
peer. Change the parameter to id, i.e.
{code:java}
  void addPeerCommitIndexGauge(RaftPeerId peerId) {
    final String followerCommitIndexKey = 
String.format(LEADER_METRIC_PEER_COMMIT_INDEX, peerId);
    registry.gauge(followerCommitIndexKey,
        () -> () -> Optional.ofNullable(commitInfoCache.get(peerId))
            .map(CommitInfoProto::getCommitIndex).orElse(0L));
  }
{code}

 - Then use server.getId() in RaftServerMetrics constructor and don't change 
LeaderState.

> Datanode restart fails with IllegalStateException
> -------------------------------------------------
>
>                 Key: RATIS-747
>                 URL: https://issues.apache.org/jira/browse/RATIS-747
>             Project: Ratis
>          Issue Type: Bug
>    Affects Versions: 0.5.0
>            Reporter: Aravindan Vijayan
>            Assignee: Aravindan Vijayan
>            Priority: Major
>              Labels: intermittent
>             Fix For: 0.5.0
>
>         Attachments: RATIS-747-000.patch
>
>
> This issue was observed and reported by [~hanishakoneru] while working on 
> HDDS-2392.
> Datanode restart in an integration test fails with the following exception.
> {code}
> Caused by: java.lang.IllegalStateException: Not started
>       at 
> org.apache.ratis.thirdparty.com.google.common.base.Preconditions.checkState(Preconditions.java:504)
>       at 
> org.apache.ratis.thirdparty.io.grpc.internal.ServerImpl.getPort(ServerImpl.java:176)
>       at 
> org.apache.ratis.grpc.server.GrpcService.lambda$new$2(GrpcService.java:143)
>       at org.apache.ratis.util.MemoizedSupplier.get(MemoizedSupplier.java:62)
>       at 
> org.apache.ratis.grpc.server.GrpcService.getInetSocketAddress(GrpcService.java:182)
>       at 
> org.apache.ratis.server.impl.RaftServerImpl.lambda$new$0(RaftServerImpl.java:84)
>       at org.apache.ratis.util.MemoizedSupplier.get(MemoizedSupplier.java:62)
>       at 
> org.apache.ratis.server.impl.RaftServerImpl.getPeer(RaftServerImpl.java:136)
>       at 
> org.apache.ratis.server.impl.RaftServerMetrics.<init>(RaftServerMetrics.java:70)
>       at 
> org.apache.ratis.server.impl.RaftServerMetrics.getRaftServerMetrics(RaftServerMetrics.java:62)
>       at 
> org.apache.ratis.server.impl.RaftServerImpl.<init>(RaftServerImpl.java:119)
>       at 
> org.apache.ratis.server.impl.RaftServerProxy.lambda$newRaftServerImpl$2(RaftServerProxy.java:208)
>       at 
> java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
> Issue Links
> {code}



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

Reply via email to