[ 
https://issues.apache.org/jira/browse/RATIS-1883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tsz-wo Sze resolved RATIS-1883.
-------------------------------
    Fix Version/s: 3.0.0
         Assignee: Anpu Lu
       Resolution: Fixed

The pull request is now merged.  Thanks, [~anpulu] !

> Next Index should be always larger than Match Index in GrpcLogAppender
> ----------------------------------------------------------------------
>
>                 Key: RATIS-1883
>                 URL: https://issues.apache.org/jira/browse/RATIS-1883
>             Project: Ratis
>          Issue Type: Bug
>          Components: Leader
>    Affects Versions: 2.5.1
>            Reporter: Anpu Lu
>            Assignee: Anpu Lu
>            Priority: Major
>             Fix For: 3.0.0
>
>
> *Next Index should be always larger than Match Index in GrpcLogAppender.*
> Considering the case below:
> 1. A new leader appends a no-op log [3], and sends an AppendEntries Request 
> containing log [3] to followers, updating their next index to 4, while match 
> index is default 0
> 2. Follower A has log [0 1] receives this request and replies inconsistency
> 3. Before leader receives reply, leader receives a client request and appends 
> log [4] and sends AppendEntries Request to followers, updating their next 
> index to 5, while match index is default 0
> 4. Leader receives inconsistency reply and decreases follower A's next index 
> from 5 to 2
> 5. Leader sends AppendEntries Request containing log [2 3 4] to follower A, 
> updating next index to 5
> 6. The same with 3, leader receives a client request and appends log [5] and 
> sends AppendEntries Request to followers, updating their next index to 6, 
> while match index is default 0
> 7. Follower receives request with log [4] and replies inconsistency
> 8. Leader receives inconsistency reply and decreases follower A's next index 
> from 6 to 2
> 9. Follower receives request with log [2 3 4] and replies success
> 10. Leader receives success reply and updates follower A's match index from 0 
> to 4.
> 11. *Now match index is larger than next index 2*
> Possible solution:
> - update next index after match index changes when receiving success reply
> - update next index keeping larger than match index when receiving 
> inconsistency reply



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to