You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Jason Gustafson (Jira)" <ji...@apache.org> on 2021/08/10 19:34:00 UTC

[jira] [Resolved] (KAFKA-13161) Follower leader and ISR state not updated after partition change in KRaft

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

Jason Gustafson resolved KAFKA-13161.
-------------------------------------
    Resolution: Fixed

> Follower leader and ISR state not updated after partition change in KRaft
> -------------------------------------------------------------------------
>
>                 Key: KAFKA-13161
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13161
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Jason Gustafson
>            Assignee: Jose Armando Garcia Sancio
>            Priority: Blocker
>             Fix For: 3.0.0
>
>
> In KRaft when we detect a partition change, we first verify whether any leader or follower transitions are needed. Depending on the case, we call either `applyLocalLeadersDelta` or `applyLocalFollowersDelta`. In the latter case, we are missing a call to `Partition.makeFollower` which is responsible for updating LeaderAndIsr state for the partitions. As a result of this, the partition state may be left stale. 
> The specific consequences of this bug are 1) follower fetching fails since the epoch is never updated, and 2) a stale leader may continue to accept Produce requests. The latter is the bigger issue since it can lead to log divergence if we are appending from both the client and from the fetcher thread at the same time. I tested this locally and confirmed that it is possible.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)