[
https://issues.apache.org/jira/browse/KAFKA-9004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Gustafson resolved KAFKA-9004.
------------------------------------
Resolution: Fixed
> Fetch from follower unintentionally allowed for old consumers
> -------------------------------------------------------------
>
> Key: KAFKA-9004
> URL: https://issues.apache.org/jira/browse/KAFKA-9004
> Project: Kafka
> Issue Type: Bug
> Reporter: Jason Gustafson
> Assignee: David Arthur
> Priority: Major
>
> With KIP-392, we allow consumers to fetch from followers. This capability is
> enabled when a replica selector has been provided in the configuration. When
> not in use, the intent is to preserve current behavior of fetching only from
> leader. The leader epoch is the mechanism that keeps us honest. When there is
> a leader change, the epoch gets bumped, consumer fetches fail due to the
> fenced epoch, and we find the new leader.
> However, for old consumers, there is no similar protection. The leader epoch
> was not available to clients until recently. If there is a preferred leader
> election (for example), the old consumer will happily continue fetching from
> the demoted leader until a periodic metadata fetch causes us to discover the
> new leader. This does not create any problems from a correctness
> perspective–fetches are still bound by the high watermark–but it is
> unexpected and may cause unexpected performance characteristics.
> To fix this (assuming we think it should be fixed), we could be stricter
> about fetches and require the leader check if the fetch request has no epoch.
> Or maybe just require the leader check for older versions of the fetch
> request.
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)