[ 
https://issues.apache.org/jira/browse/KAFKA-21204?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18126119#comment-18126119
 ] 

Nilesh Kumar commented on KAFKA-21204:
--------------------------------------

[~junrao]  please review [https://github.com/apache/kafka/pull/23780] when you 
get a chance.

> ListOffset may return -1 when offset is available
> -------------------------------------------------
>
>                 Key: KAFKA-21204
>                 URL: https://issues.apache.org/jira/browse/KAFKA-21204
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Jun Rao
>            Assignee: Nilesh Kumar
>            Priority: Major
>
> When serving a ListOffset request, the broker eventually calls FileRecords.
> searchForTimestamp(), which calls batchesFrom(). batchesFrom() bounds the 
> iteration by the end of the segment, which could include uncommitted data. In 
> ReplicaManger.
> fetchOffset(), we bound the returned offset by lastFetchableOffset. However, 
> this means that the returned offset is -1, instead of the actual offset. This 
> issue can be more likely surfaced when MAX_TIMESTAMP is used in ListOffset 
> and records are appended in increasing timestamp order.
>  
> {code:java}
>                 if (resultHolder.lastFetchableOffset.isPresent &&
>                   timestampAndOffsetOpt.offset >= 
> resultHolder.lastFetchableOffset.get) {
>                   resultHolder.maybeOffsetsError.map(e => throw e)
>                 } else {{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to