junrao commented on a change in pull request #11345: URL: https://github.com/apache/kafka/pull/11345#discussion_r719837715
########## File path: core/src/main/scala/kafka/log/LogSegment.scala ########## @@ -77,8 +77,9 @@ class LogSegment private[log] (val log: FileRecords, timeIndex.resize(size) } - def sanityCheck(timeIndexFileNewlyCreated: Boolean): Unit = { - if (lazyOffsetIndex.file.exists) { + def sanityCheck(timeIndexFileNewlyCreated: Boolean, isActiveSegment: Boolean): Unit = { + // We allow for absence of offset index file only for an empty active segment. + if ((isActiveSegment && size == 0) || lazyOffsetIndex.file.exists) { Review comment: @kowshik : #8346 tries to avoid opening the index during close() when the index is not opened yet. This applies to existing segments on broker restart. For active segment, we typically need to open the index anyway. So, we probably don't need to optimize the rare case when it's empty. Plus, the danger of losing logEndOffset is a bigger concern than avoiding the cost of opening one index file. -- 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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org