divijvaidya commented on code in PR #15472:
URL: https://github.com/apache/kafka/pull/15472#discussion_r1513268220
##########
core/src/main/java/kafka/log/remote/RemoteLogManager.java:
##########
@@ -707,6 +708,8 @@ public void copyLogSegmentsToRemote(UnifiedLog log) throws
InterruptedException
this.cancel();
} catch (InterruptedException | RetriableException ex) {
throw ex;
+ } catch (CorruptIndexException ex) {
+ logger.error("Error occurred while copying log segments. Index
appeared to be corrupted for partition: {} ", topicIdPartition, ex);
Review Comment:
I am assuming that the way this error will be monitored is by creating an
alarm on `RemoteCopyLagSegments` [1]. Is that right?
Can you also please why shouldn't we increment the
`failedRemoteCopyRequestRate` and `failedRemoteCopyRequestRate` metric that are
being incremented in catch exception below?
[1] https://kafka.apache.org/documentation.html#tiered_storage_monitoring
##########
storage/src/main/java/org/apache/kafka/storage/internals/log/TimeIndex.java:
##########
@@ -75,13 +75,14 @@ public void sanityCheck() {
TimestampOffset entry = lastEntry();
long lastTimestamp = entry.timestamp;
long lastOffset = entry.offset;
- if (entries() != 0 && lastTimestamp < timestamp(mmap(), 0))
- throw new CorruptIndexException("Corrupt time index found, time
index file (" + file().getAbsolutePath() + ") has "
- + "non-zero size but the last timestamp is " + lastTimestamp +
" which is less than the first timestamp "
- + timestamp(mmap(), 0));
+
if (entries() != 0 && lastOffset < baseOffset())
throw new CorruptIndexException("Corrupt time index found, time
index file (" + file().getAbsolutePath() + ") has "
+ "non-zero size but the last offset is " + lastOffset + "
which is less than the first offset " + baseOffset());
+ if (entries() != 0 && lastTimestamp < timestamp(mmap(), 0))
Review Comment:
I am assuming that the reason of moving this down is to use the less
expensive validation first?
--
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]