[
https://issues.apache.org/jira/browse/RATIS-453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16714561#comment-16714561
]
Lokesh Jain commented on RATIS-453:
-----------------------------------
[~szetszwo] Thanks for working on this! The patch looks good to me. Please find
my comments below.
# RaftClientImpl:285 - We need to handle the case when sendRequestAsync
completes exceptionally.
# SlidingWindow$Client#fail - we can remove the handle variable by moving
removeRepliedFromHead() inside the if condition where handle is initialized.
# SlidingWindow$Client#retry - We also need to handle the exception case in
this call.
# BaseTest - Unrelated to patch. There are spelling errors
ex+cep+tedThrowableClass and ex+cep+tedCauseClasses should be
ex+pec+tedThrowableClass and ex+pec+tedCauseClasses.
> When retry failed on an async call, it should fails all the following calls
> in the sliding window
> -------------------------------------------------------------------------------------------------
>
> Key: RATIS-453
> URL: https://issues.apache.org/jira/browse/RATIS-453
> Project: Ratis
> Issue Type: Bug
> Components: client
> Reporter: Tsz Wo Nicholas Sze
> Assignee: Tsz Wo Nicholas Sze
> Priority: Major
> Attachments: r453_20181208.patch, r453_20181209.patch
>
>
> Suppose client has made more than one async calls and then waits for the
> replies. Suppose the leader is not ready or some other transient problem.
> The retries on the first async call may fail, the code will set
> RaftRetryFailureException in the reply. However, the retries of the
> following async calls may succeed. In such case, the call ordering is not
> guaranteed -- a later call succeeds without delivered an earlier call.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)