> 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. > > Hari Shreedharan wrote: > 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. > > > > Brock Noland wrote: > I did not mean to imply this was caused by your change, but if we are > "fixing" the class we might as well fix these issues as well.
Yep, updated the jira. - 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 > >
