[
https://issues.apache.org/jira/browse/KAFKA-9196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ismael Juma resolved KAFKA-9196.
--------------------------------
Resolution: Fixed
> Records exposed before advancement of high watermark after segment roll
> -----------------------------------------------------------------------
>
> Key: KAFKA-9196
> URL: https://issues.apache.org/jira/browse/KAFKA-9196
> Project: Kafka
> Issue Type: Bug
> Reporter: Jason Gustafson
> Assignee: Jason Gustafson
> Priority: Blocker
> Fix For: 2.4.0
>
>
> We cache the segment position of the high watermark and last stable offset
> inside `Log`. There is no logic currently to update the cached position when
> the segment rolls.
> Suppose we have a log with one segment (0.log). We write 5 records and update
> the high watermark to match the log end offset. The cached segment position
> will be something like LogOffsetMetadata(offset=5, segment=0, position=100).
> Now suppose we roll to segment 5.log and write some new data. If a consumer
> fetches from offset 5, then the current fetch logic will find segment 5.log
> and incorrectly use position 100 in this segment. The result is that data
> from the new segment gets exposed prematurely.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)