Tycho Lamerigts created FLUME-2457:
--------------------------------------

             Summary: Lifecycle of HBase sink is broken
                 Key: FLUME-2457
                 URL: https://issues.apache.org/jira/browse/FLUME-2457
             Project: Flume
          Issue Type: Bug
          Components: Sinks+Sources
    Affects Versions: v1.5.0
            Reporter: Tycho Lamerigts


If the start() method of the HBase sink throws an exception then flume tries to 
call start() again without first calling stop(). This leads to an unrecoverable 
state where flume keeps calling start() forever and HBase Sink keeps throwing 
the same exception forever (see stacktrace below). This can happen, for 
example, if HBase is down for a long time (10 mins) during the very first call 
to start().

Note that this also negatively affects a flume failover sinkgroup containing a 
HBase sink, because the group refuses to failover if the start() method of one 
of the sinks in the group throws an exception (this may be a separate bug)

{noformat}
2014-09-08 11:00:17,409 ERROR org.apache.flume.lifecycle.LifecycleSupervisor: 
Unable to start SinkRunner: { 
policy:org.apache.flume.sink.DefaultSinkProcessor@481352e6 counterGroup:{ 
name:null counters:{} } } - Exception follows.
java.lang.IllegalArgumentException: Please call stop before calling start on an 
old instance.
        at 
com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
        at org.apache.flume.sink.hbase.HBaseSink.start(HBaseSink.java:132)
        at 
org.apache.flume.sink.DefaultSinkProcessor.start(DefaultSinkProcessor.java:46)
        at org.apache.flume.SinkRunner.start(SinkRunner.java:79)
        at 
org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:251)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
{noformat}



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

Reply via email to