[ https://issues.apache.org/jira/browse/KAFKA-1819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14247925#comment-14247925 ]
Joel Koshy commented on KAFKA-1819: ----------------------------------- This is a similar stack-trace to KAFKA-1641 but that is a different (in fact uncertain) root cause. I think the log is already removed from the map (pool) in LogManager.deleteLog - that same map is passed through to the cleaner. The issue is that in doneCleaning (where the checkpoint file is written) we never remove entries. So we can probably just filter out topic-partitions that are no longer present in the logs map when writing the checkpoint file. We will need to refactor a little to force write the checkpoints if cleaning for that topicPartition was not in progress. > Cleaner gets confused about deleted and re-created topics > --------------------------------------------------------- > > Key: KAFKA-1819 > URL: https://issues.apache.org/jira/browse/KAFKA-1819 > Project: Kafka > Issue Type: Bug > Reporter: Gian Merlino > Priority: Blocker > Fix For: 0.8.2 > > > I get an error like this after deleting a compacted topic and re-creating it. > I think it's because the brokers don't remove cleaning checkpoints from the > cleaner-offset-checkpoint file. This is from a build based off commit bd212b7. > java.lang.IllegalArgumentException: requirement failed: Last clean offset is > 587607 but segment base offset is 0 for log foo-6. > at scala.Predef$.require(Predef.scala:233) > at kafka.log.Cleaner.buildOffsetMap(LogCleaner.scala:502) > at kafka.log.Cleaner.clean(LogCleaner.scala:300) > at > kafka.log.LogCleaner$CleanerThread.cleanOrSleep(LogCleaner.scala:214) > at kafka.log.LogCleaner$CleanerThread.doWork(LogCleaner.scala:192) > at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:60) -- This message was sent by Atlassian JIRA (v6.3.4#6332)