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