> 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
> 
>

Reply via email to