Jason Gustafson created KAFKA-9004:
--------------------------------------
Summary: Fetch from follower unintentionally enabled 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
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)