Vincent Jiang created KAFKA-14005: ------------------------------------- Summary: LogCleaner doesn't clean log if there is no dirty range Key: KAFKA-14005 URL: https://issues.apache.org/jira/browse/KAFKA-14005 Project: Kafka Issue Type: Bug Reporter: Vincent Jiang
When there is no dirty range to clean (firstDirtyOffset == firstUnclenableOffset), buildOffsetMap for dirty range returns an empty offset map, with map.latestOffset = -1. Then target cleaning offset range becomes [startOffset, map.latestOffset + 1) = [startOffset, 0], hence no segments are cleaned. The correct cleaning offset range should be [startOffset, firstDirtyOffset], so that the log can be cleaned again to remove abort/commit markers, or tombstones. LogCleanerTest.FakeOffsetMap.clear() method has a bug - it doesn't reset lastOffset. This bug causes test case like testAbortMarkerRemoval() pass false-positively. -- This message was sent by Atlassian Jira (v8.20.7#820007)