junrao commented on code in PR #15825:
URL: https://github.com/apache/kafka/pull/15825#discussion_r1608984545
##########
core/src/main/scala/kafka/log/LocalLog.scala:
##########
@@ -370,11 +370,17 @@ class LocalLog(@volatile private var _dir: File,
throw new OffsetOutOfRangeException(s"Received request for offset
$startOffset for partition $topicPartition, " +
s"but we only have log segments upto $endOffset.")
- if (startOffset == maxOffsetMetadata.messageOffset)
+ if (startOffset == maxOffsetMetadata.messageOffset) {
emptyFetchDataInfo(maxOffsetMetadata, includeAbortedTxns)
- else if (startOffset > maxOffsetMetadata.messageOffset)
+ } else if (startOffset > maxOffsetMetadata.messageOffset ||
+ maxOffsetMetadata.messageOffsetOnly() ||
+ maxOffsetMetadata.segmentBaseOffset < segmentOpt.get.baseOffset) {
Review Comment:
Returning the current offset is correct. I am wondering why the suggested
approach returns nextOffset. `segment.read(startOffset, maxLength, maxPosition,
minOneMessage)` should return a non-null fetchDataInfo since the startOffset
exists in the first segment, right?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]