[ 
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)

Reply via email to