You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "yuanjiali (JIRA)" <ji...@apache.org> on 2016/12/02 11:37:58 UTC

[jira] [Commented] (KAFKA-1641) Log cleaner exits if last cleaned offset is lower than earliest offset

    [ https://issues.apache.org/jira/browse/KAFKA-1641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15714892#comment-15714892 ] 

yuanjiali commented on KAFKA-1641:
----------------------------------

We are hitting this problem in 0.10.0.0. Log as blow:
[2016-12-02 11:33:52,744] ERROR [kafka-log-cleaner-thread-0], Error due to  (kafka.log.LogCleaner)
java.lang.IllegalArgumentException: requirement failed: Last clean offset is 282330655505 but segment base offset is 0 for log __consumer_offsets-11.
        at scala.Predef$.require(Predef.scala:224)
        at kafka.log.Cleaner.buildOffsetMap(LogCleaner.scala:617)
        at kafka.log.Cleaner.clean(LogCleaner.scala:329)
        at kafka.log.LogCleaner$CleanerThread.cleanOrSleep(LogCleaner.scala:237)
        at kafka.log.LogCleaner$CleanerThread.doWork(LogCleaner.scala:215)
        at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63)
[2016-12-02 11:33:52,744] INFO [kafka-log-cleaner-thread-0], Stopped  (kafka.log.LogCleaner)

> Log cleaner exits if last cleaned offset is lower than earliest offset
> ----------------------------------------------------------------------
>
>                 Key: KAFKA-1641
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1641
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.8.1.1
>            Reporter: Joel Koshy
>            Assignee: Guozhang Wang
>             Fix For: 0.9.0.0
>
>         Attachments: KAFKA-1641.patch, KAFKA-1641_2014-10-09_13:04:15.patch
>
>
> Encountered this recently: the log cleaner exited a while ago (I think because the topic had compressed messages). That issue was subsequently addressed by having the producer only send uncompressed. However, on a subsequent restart of the broker we see this:
> In this scenario I think it is reasonable to just emit a warning and have the cleaner round up its first dirty offset to the base offset of the first segment.
> {code}
> [kafka-server] [] [kafka-log-cleaner-thread-0], Error due to 
> java.lang.IllegalArgumentException: requirement failed: Last clean offset is 54770438 but segment base offset is 382844024 for log testtopic-0.
>         at scala.Predef$.require(Predef.scala:145)
>         at kafka.log.Cleaner.buildOffsetMap(LogCleaner.scala:491)
>         at kafka.log.Cleaner.clean(LogCleaner.scala:288)
>         at kafka.log.LogCleaner$CleanerThread.cleanOrSleep(LogCleaner.scala:202)
>         at kafka.log.LogCleaner$CleanerThread.doWork(LogCleaner.scala:187)
>         at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:51)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)