[
https://issues.apache.org/jira/browse/RATIS-1072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Glen Geng updated RATIS-1072:
-----------------------------
Description:
When InstallSnapshotResponseHandler::onError() or
AppendLogResponseHandler::onError() is called, it will:
# call rpcService.getProxies().resetProxy(getFollowerId()).
# set appendLogRequestObserver to be null.
The recovery steps for the BiDi streaming call is actually:
# call ManagedChannel.shutdown()
# re-create the channel from NettyChannelBuilder
# re-create the async stub from the channel.
# re-create a StreamObserver<OurRequest> from the async stub.
Above steps is un-necessary and dangerous.
un-necessary:
according to the [reply from
grpc|[https://github.com/grpc/grpc-java/issues/7442]],
was:
When InstallSnapshotResponseHandler::onError() or
AppendLogResponseHandler::onError() is called,
> should not shutdown and re-create channel/stub, when
> StreamObserver::onError() is called.
> -----------------------------------------------------------------------------------------
>
> Key: RATIS-1072
> URL: https://issues.apache.org/jira/browse/RATIS-1072
> Project: Ratis
> Issue Type: Sub-task
> Reporter: Glen Geng
> Assignee: Glen Geng
> Priority: Major
> Fix For: 1.1.0
>
>
>
> When InstallSnapshotResponseHandler::onError() or
> AppendLogResponseHandler::onError() is called, it will:
> # call rpcService.getProxies().resetProxy(getFollowerId()).
> # set appendLogRequestObserver to be null.
> The recovery steps for the BiDi streaming call is actually:
> # call ManagedChannel.shutdown()
> # re-create the channel from NettyChannelBuilder
> # re-create the async stub from the channel.
> # re-create a StreamObserver<OurRequest> from the async stub.
>
> Above steps is un-necessary and dangerous.
>
> un-necessary:
> according to the [reply from
> grpc|[https://github.com/grpc/grpc-java/issues/7442]],
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)