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