[ 
https://issues.apache.org/jira/browse/RATIS-453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16715510#comment-16715510
 ] 

Tsz Wo Nicholas Sze commented on RATIS-453:
-------------------------------------------

Thanks [~ljain] for the comments.
 # Good catch! Should complete the future exceptionally.
 # If we moving removeRepliedFromHead() inside the if condition where handle is 
initialized, it will be called multiple times.
 # Suppose a request F has failed by the RetryPolicy, Now, another request R is 
retrying. If R is before F, it should retry. If R is after F, it should have 
already removed from the request map and completed exceptionally.  So no change 
is needed.
 # Will fix the typos.

> 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, 
> r453_20181210.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