[ 
https://issues.apache.org/jira/browse/KAFKA-677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jun Rao updated KAFKA-677:
--------------------------

    Attachment: kafka_677-cleanup.patch

Not sure what's causing this. However, in Log.truncateTo(), we have a couple of 
error cases upon which we only log an error and let it go. Those error cases 
will bring the log to an inconsistent state. So, it's probably better to throw 
a KafkaStorageException ( the exception will propagate all the way to 
KafkaApis.handleLeaderAndIsrRequest() and cause the broker to shut down) 
instead. Attach a patch to clean this up.
                
> Retention process gives exception if an empty segment is chosen for collection
> ------------------------------------------------------------------------------
>
>                 Key: KAFKA-677
>                 URL: https://issues.apache.org/jira/browse/KAFKA-677
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 0.8
>            Reporter: Jay Kreps
>            Assignee: Jay Kreps
>             Fix For: 0.8
>
>         Attachments: kafka_677-cleanup.patch
>
>
> java.io.FileNotFoundException: 
> /mnt/u001/kafka_08_long_running_test/kafka-logs/NewsActivityEvent-3/00000000000000000000.index
>  (No such file or directory)
>         at java.io.RandomAccessFile.open(Native Method)
>         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
>         at kafka.log.OffsetIndex.resize(OffsetIndex.scala:244)
>         at kafka.log.OffsetIndex.trimToValidSize(OffsetIndex.scala:233)
>         at kafka.log.Log.rollToOffset(Log.scala:459)
>         at kafka.log.Log.roll(Log.scala:443)
>         at kafka.log.Log.markDeletedWhile(Log.scala:395)
>         at 
> kafka.log.LogManager.kafka$log$LogManager$$cleanupExpiredSegments(LogManager.scala:241)
>         at 
> kafka.log.LogManager$$anonfun$cleanupLogs$2.apply(LogManager.scala:277)
>         at 
> kafka.log.LogManager$$anonfun$cleanupLogs$2.apply(LogManager.scala:275)
>         at scala.collection.Iterator$class.foreach(Iterator.scala:631)
>         at 
> scala.collection.JavaConversions$JIteratorWrapper.foreach(JavaConversions.scala:474)
>         at scala.collection.IterableLike$class.foreach(IterableLike.scala:79)
>         at 
> scala.collection.JavaConversions$JCollectionWrapper.foreach(JavaConversions.scala:495)
>         at kafka.log.LogManager.cleanupLogs(LogManager.scala:275)
>         at 
> kafka.log.LogManager$$anonfun$startup$1.apply$mcV$sp(LogManager.scala:141)
>         at kafka.utils.Utils$$anon$2.run(Utils.scala:66)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>         at 
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:619)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to