> On 2012-04-17 15:44:12, Brock Noland wrote: > > flume-ng-core/src/main/java/org/apache/flume/lifecycle/LifecycleSupervisor.java, > > line 68 > > <https://reviews.apache.org/r/4753/diff/3/?file=102382#file102382line68> > > > > This isn't your code but it looks like there are a few problems here. > > > > 1) monitorService on MonitorRunnable is not set so an NPE (which is not > > being logged is thrown: > > > > java.lang.NullPointerException > > at > > org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:255) > > 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:180) > > at > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) > > 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:662) > > > > 2) The NPE is not being logged. > > 3) If the NPE did not occur we'd have a bigger issue as > > scheduleAtFixedRate is called here but the runnable reschedules itself. > > 4) Calling first supervise() and then start() creates two threads > > monitoring this service.
Hi Brock, None of the issues are caused by this change. I can look into these and fix them, it seems like it is because of the way the start method is written. Here is a brief explanation: 1 and 2) This is caused by the start() function being called without supervise being called. The reason we have not been seeing this seems to be that when start is called, the different components have not been added. So it never goes into the loop. 3) Agree this is an issue, but because of the explanation to (1 and 2) above. 4) Agreed, we should not be doing this. I will update the relevant code. - Hari ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4753/#review6983 ----------------------------------------------------------- On 2012-04-17 15:06:58, Hari Shreedharan wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/4753/ > ----------------------------------------------------------- > > (Updated 2012-04-17 15:06:58) > > > Review request for Flume. > > > Summary > ------- > > All components are started by the same executor, which is different from the > executor service that checks the status of the components. > > > This addresses bug FLUME-1124. > https://issues.apache.org/jira/browse/FLUME-1124 > > > Diffs > ----- > > > flume-ng-core/src/main/java/org/apache/flume/lifecycle/LifecycleSupervisor.java > a7407e6 > > Diff: https://reviews.apache.org/r/4753/diff > > > Testing > ------- > > > Thanks, > > Hari > >
