sashapolo commented on code in PR #4214:
URL: https://github.com/apache/ignite-3/pull/4214#discussion_r1713370319


##########
modules/raft/src/main/java/org/apache/ignite/internal/raft/RaftGroupServiceImpl.java:
##########
@@ -811,9 +810,20 @@ private CompletableFuture<ClusterNode> resolvePeer(Peer 
peer) {
         ClusterNode node = 
cluster.topologyService().getByConsistentId(peer.consistentId());
 
         if (node == null) {
-            return CompletableFuture.failedFuture(new ConnectException("Peer " 
+ peer.consistentId() + " is unavailable"));
+            return CompletableFuture.failedFuture(new 
PeerUnavailableException("Peer " + peer.consistentId() + " is unavailable"));

Review Comment:
   I'm not sure about the other place too. We can change the exception type, 
but then `IgniteRpcClient#send` will be able to throw both 
`PeerUnavailableException` (when the target is not in the physical topology) 
and `ConnectException` (when the target is still in the topology, but failed to 
respond for some reason?). This means that the code inside 
`AbstractClientService#invokeWithDone` will need to handle both of these 
exception types. I don't know why it was written like that (to handle 
`ConnectException` is a special way), but it is what it is.
   
   So it's all doable, but do we need to do that?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to