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

Hari Shreedharan commented on FLUME-2282:
-----------------------------------------

When the channel throws an IllegalStateException with "Log is Closed" or 
"Channel Closed", that means the channel is in an irrecoverable state (and 
therefore, cannot be ignored and a retry will not work either), most likely 
something failed during startup or the disk ran out of space. You need to check 
the logs earlier to figure out why the exception was thrown. It could also mean 
that the channel is still starting up. The channel throws Channel Exceptions 
where recovery is possible, else it throws an IllegalStateException - which is 
part of the design to make sure the channel behaves as intended.

> File Channel throws IllegalStateException causing some sources to not be to 
> recover from a reconfig
> ---------------------------------------------------------------------------------------------------
>
>                 Key: FLUME-2282
>                 URL: https://issues.apache.org/jira/browse/FLUME-2282
>             Project: Flume
>          Issue Type: Bug
>          Components: Configuration, File Channel
>            Reporter: Roshan Naik
>              Labels: channel
>
> when the config file is updated and the file channel is shut, the Source 
> receives a java.lang.IllegalState exception from FileChannel. Unfortunately 
> unless sources are designed to catch all exception types, they will not know 
> this is a channel exception and likely to go into fuzzy states.
> For instance the FLUME-2255 patch catches only ChannelException.
> The below stack trace can be seen in logs when this happens with FLUME-2255 
> applied:
> {code}
> 21 Dec 2013 21:15:03,030 ERROR [pool-17-thread-1] 
> (org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run:194) 
>  - Uncaught exception in SpoolDirSource thread 
> java.lang.IllegalStateException: Channel closed [channel=channel_nontx]
>       at 
> org.apache.flume.channel.file.FileChannel.createTransaction(FileChannel.java:351)
>       at 
> org.apache.flume.channel.BasicChannelSemantics.getTransaction(BasicChannelSemantics.java:122)
>       at 
> org.apache.flume.channel.ChannelProcessor.processEventBatch(ChannelProcessor.java:181)
>       at 
> org.apache.flume.source.SpoolDirectorySource$SpoolDirectoryRunnable.run(SpoolDirectorySource.java:179)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>       at 
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:679)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to