timoninmaxim commented on code in PR #11954: URL: https://github.com/apache/ignite/pull/11954#discussion_r2109675267
########## modules/core/src/main/java/org/apache/ignite/internal/client/thin/ReliableChannel.java: ########## @@ -243,65 +243,105 @@ private <T> void handleServiceAsync( List<ClientConnectionException> failures ) { try { - applyOnDefaultChannel( - channel -> applyOnClientChannelAsync(fut, channel, op, payloadWriter, payloadReader, failures), - null, - failures - ); + ClientChannel ch = applyOnDefaultChannel(Function.identity(), null, failures); + + applyOnClientChannelAsync(fut, ch, op, payloadWriter, payloadReader, failures); } catch (Throwable ex) { fut.completeExceptionally(ex); } } - /** */ - private <T> Object applyOnClientChannelAsync( + /** + * Retries an async operation on the same channel if it fails with a connection exception + * then falls back to other channels if retry fails. Aggregates failures and completes the original future. + */ + private <T> void applyOnClientChannelAsync( final CompletableFuture<T> fut, ClientChannel ch, ClientOperation op, Consumer<PayloadOutputChannel> payloadWriter, Function<PayloadInputChannel, T> payloadReader, List<ClientConnectionException> failures ) { - return ch - .serviceAsync(op, payloadWriter, payloadReader) Review Comment: not fixed -- 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: notifications-unsubscr...@ignite.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org