Uploaded image for project: 'Flume'
  1. Flume
  2. FLUME-2282

File Channel throws IllegalStateException causing some sources to not be to recover from a reconfig

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Configuration, File Channel

    Description

      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:

      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)
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              roshan_naik Roshan Naik
              Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: