Thanks for your response.
Did open an issue:
https://issues.apache.org/jira/browse/FELIX-4663

Hartmut

2014-10-03 10:35 GMT+02:00 Carsten Ziegeler <[email protected]>:

> Hi,
>
> thanks for the great analysis - could you please open a jira issue for
> this?
> We're not planning any releases for 1.3.x and rather suggest to use the
> latest 1.4.x version. The only new requirement of the 1.4 version is Java
> 6.
>
> Carsten
>
> 2014-10-02 22:21 GMT+02:00 Hartmut Lang <[email protected]>:
>
> > Hi all,
> >
> > using EventAdmin 1.3.2 we run in an OutOfMemory issue caused be not
> > delivered async events.
> > Drilling down the problem i found that the problem is caused by an
> > interrupted thread which issues an log-event.
> > In EventAdmin 1.3.2 the async-delivery uses DefaultThreadPool based on
> > PooledExecutor.
> > If the already interrupted thread enters the execute-method in
> > PooledExecutor a InterruptedException is thrown before the TaskExecutor
> was
> > added to the Thread-Pool.
> > This Exception is catched(not handled, only logged) in the
> > DefaultThreadPool.
> > As a result the TaskExecuter was not scheduled in the ThreadPool but is
> > still part of the m_running_threads.
> > All new events are added to the pool of the TaskExecuter, adding in a
> > increasing LinkedList. The TaskExecutor is never started again. Memory is
> > leaking.
> >
> > As stated we see this in EventAdmin 1.3.2.
> > I understand that EventAdmin 1.4.x was changed using ExecutorService
> > instead of PooledExecutor.
> > Also e.g. FELIX-4627 <https://issues.apache.org/jira/browse/FELIX-4627>
> > seems
> > to fix a leaking problem in 1.4.2
> > But still i see the not handled (only logging) exception catched in
> > DefaultThreadPool.
> >
> >     public void executeTask(final Runnable task)
> >     {
> >         try
> >         {
> >             this.executor.submit(task);
> >         }
> >         catch (final Throwable t)
> >         {
> >             LogWrapper.getLogger().log(
> >                     LogWrapper.LOG_WARNING,
> >                     "Exception: " + t, t);
> >             // ignore this
> >         }
> >     }
> >
> > The submit-call  here does not throw InterruptedException so a already
> > interrupted task entring this section can not cause harm, right?
> > But the submit method can potentially throw a RejectedExecutionException.
> > Couldn't this also result in the same condition? TaskExecutor not
> scheduled
> > but still added to m_running_threads?
> > Is there a bug-fix planned for 1.3.x? Or do we have to switch to 1.4.x?
> >
> > Thanks for reading this long message ;-)
> > Hartmut
> >
>
>
>
> --
> Carsten Ziegeler
> Adobe Research Switzerland
> [email protected]
>

Reply via email to