Jun Rao created KAFKA-21204:
-------------------------------

             Summary: 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


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