felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hartmut Lang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-4663) Potential memory leak in AsyncDeliveryTask
Date Sun, 05 Oct 2014 09:28:33 GMT

    [ https://issues.apache.org/jira/browse/FELIX-4663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14159486#comment-14159486
] 

Hartmut Lang commented on FELIX-4663:
-------------------------------------

That is exactly how i would have solved this issue.
I think i would change it to only catch the REE. 
Because here we do not see the exceptions of the actual thread execution, but only the exceptions
that can occur in scheduling the task on the thread-pool, right? 
So basically REE is the only exception that can occur at all.
Thx for your quick fix!

> Potential memory leak in AsyncDeliveryTask
> ------------------------------------------
>
>                 Key: FELIX-4663
>                 URL: https://issues.apache.org/jira/browse/FELIX-4663
>             Project: Felix
>          Issue Type: Bug
>          Components: Event Admin
>    Affects Versions: eventadmin-1.3.2
>            Reporter: Hartmut Lang
>            Assignee: Carsten Ziegeler
>             Fix For: eventadmin-1.4.4
>
>
> EventAdmin 1.3.2 can create an OutOfMemory condition caused by not delivered async events.
> The problem can occur if an interrupted thread issues an async event (e.g. 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 an 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.
> Seems that 1.4.x is not vulnerable related to interrupted threads. But the same catch-and-not-handle
block is used in 1.4.x. 



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

Mime
View raw message