You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jason Gustafson (Jira)" <ji...@apache.org> on 2021/01/09 01:42:01 UTC

[jira] [Resolved] (KAFKA-12153) follower can hit OffsetOutOfRangeException during truncation

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