[
https://issues.apache.org/jira/browse/KAFKA-12153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Gustafson resolved KAFKA-12153.
-------------------------------------
Fix Version/s: 2.7.1
2.8.0
Resolution: Fixed
> follower can hit OffsetOutOfRangeException during truncation
> ------------------------------------------------------------
>
> Key: KAFKA-12153
> URL: https://issues.apache.org/jira/browse/KAFKA-12153
> Project: Kafka
> Issue Type: Bug
> Components: core
> Affects Versions: 2.7.0
> Reporter: Jun Rao
> Assignee: Jason Gustafson
> Priority: Major
> Fix For: 2.8.0, 2.7.1
>
>
> Currently, we have the following code path.
> log.truncateTo() => updateLogEndOffset() => updateHighWatermarkMetadata() =>
> maybeIncrementFirstUnstableOffset() => convertToOffsetMetadataOrThrow() =>
> read()
> This path seems problematic. The issue is that updateLogEndOffset() is called
> before loadProducerState() in log.truncateTo(). At that point, the
> producerState is not reflecting the truncated state yet and
> producerStateManager.firstUnstableOffset(called in
> maybeIncrementFirstUnstableOffset() to feed read()) could return an offset
> larger than the truncated logEndOffset, which will lead to
> OffsetOutOfRangeException.
>
> This issue is relatively rare since it requires truncation below the high
> watermark.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)