[ 
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)

Reply via email to