You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Ismael Juma (Jira)" <ji...@apache.org> on 2019/11/17 22:48:00 UTC

[jira] [Resolved] (KAFKA-9196) Records exposed before advancement of high watermark after segment roll

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