[
https://issues.apache.org/jira/browse/KAFKA-9338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Gustafson resolved KAFKA-9338.
------------------------------------
Fix Version/s: 2.5.0
Resolution: Fixed
Marking this just as 2.5 for now. If we don't find any problems, we will
backport to 2.4 at least.
> Incremental fetch sessions do not maintain or use leader epoch for fencing
> purposes
> -----------------------------------------------------------------------------------
>
> Key: KAFKA-9338
> URL: https://issues.apache.org/jira/browse/KAFKA-9338
> Project: Kafka
> Issue Type: Bug
> Components: core
> Affects Versions: 2.1.0, 2.2.0, 2.3.0, 2.4.0
> Reporter: Lucas Bradstreet
> Assignee: Jason Gustafson
> Priority: Major
> Fix For: 2.5.0
>
>
> KIP-320 adds the ability to fence replicas by detecting stale leader epochs
> from followers, and helping consumers handle unclean truncation.
> Unfortunately the incremental fetch session handling does not maintain or use
> the leader epoch in the fetch session cache. As a result, it does not appear
> that the leader epoch is used for fencing a majority of the time. I'm not
> sure if this is only the case after incremental fetch sessions are
> established - it may be the case that the first "full" fetch session is safe.
> Optional.empty is returned for the FetchRequest.PartitionData here:
> [https://github.com/apache/kafka/blob/a4cbdc6a7b3140ccbcd0e2339e28c048b434974e/core/src/main/scala/kafka/server/FetchSession.scala#L111]
> I believe this affects brokers from 2.1.0 when fencing was improved on the
> replica fetcher side, and 2.3.0 and above for consumers, which is when client
> side truncation detection was added on the consumer side.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)