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

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

[~ljain], just found that the current patch works in both cases that the server 
side sliding window is reset or not. 

In my previous comment, I assume the the server side sliding window is reset.

If it does not reset, the server will never process r7 until r6 is retried by 
the sliding window algorithm.

> Async requests may become out-of-order in some rare case
> --------------------------------------------------------
>
>                 Key: RATIS-459
>                 URL: https://issues.apache.org/jira/browse/RATIS-459
>             Project: Ratis
>          Issue Type: Improvement
>          Components: client, server
>            Reporter: Tsz Wo Nicholas Sze
>            Assignee: Tsz Wo Nicholas Sze
>            Priority: Major
>              Labels: ozone
>         Attachments: r459_20190222.patch, r459_20190227.patch, 
> r459_20190228.patch, r459_20190228b.patch, r459_20190308.patch, 
> r459_20190311.patch, r459_20190311b.patch
>
>
> With some discussion with [~ljain] (thanks!), the following (highly unlikely) 
> hypothetical scenario may lead to the async requests out-of-order.
> # Requests r1-r5 success, 
> # Request r6 fails with NotLeader, 
> # Request r7 fails with some other IOException
> # r6 is still keeping retrying and a retry of r7 succeeds with s1.
> Below are the suggested fix:
> - In SlidingWindow.Client, resetFirstSeqNum() should, but currently does not, 
> clear the request map.  
> - If a request is replied with NotLeaderException, it should not be removed 
> from the request map until resetFirstSeqNum() above.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to