[ 
https://issues.apache.org/jira/browse/CXF-8161?focusedWorklogId=346740&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-346740
 ]

ASF GitHub Bot logged work on CXF-8161:
---------------------------------------

                Author: ASF GitHub Bot
            Created on: 20/Nov/19 14:25
            Start Date: 20/Nov/19 14:25
    Worklog Time Spent: 10m 
      Work Description: steingebein commented on pull request #603: [CXF-8161] 
fix memory leak and thread leak in JMSDestination
URL: https://github.com/apache/cxf/pull/603
 
 
   Solves Problems of https://issues.apache.org/jira/browse/CXF-8161:
   
   - JMSDestination#restartConnection() is synchronized: when multiple 
poller-threads run into exception handling, the restart will only run 
sequential. (otherwise there will be race conditions in restartConnection)
   - JMSDestination#restartConnection() now checks if the 
PollingMessageListenerContainer is running before restart. When multiple 
poller-threads trigger the restart, it will only starts one new 
PollingMessageListenerContainer.
   - PollingMessageListenerContainer stops the Executor after exception 
handling, resources will be released
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 346740)
    Remaining Estimate: 0h
            Time Spent: 10m

> Memory Leak/Thread Leak in JMSDestination & PollingMessageListenerContainer
> ---------------------------------------------------------------------------
>
>                 Key: CXF-8161
>                 URL: https://issues.apache.org/jira/browse/CXF-8161
>             Project: CXF
>          Issue Type: Bug
>          Components: JMS
>    Affects Versions: 3.3.4
>            Reporter: Christian Steiner
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Hi,
> when you create a JMS-Endpoint with concurrentConsumers > 1, 
> PollingMessageListenerContainer starts a ThreadPoolExecutor running 
> _concurrentConsumers_ instances of the class 
> PollingMessageListenerContainer#Poller (or XAPoller)
> If a exception from the jms-connection occurs, each Poller instance triggers 
> JMSDestination#restartConnection, so JMSDestination creates 
> _concurrentConsumers_ PollingMessageListenerContainer with 
> _concurrentConsumers_*_concurrentConsumers_ Poller instances and threads and 
> jms-consumers (for each Exception).
> If you have _concurrentConsumers_ set to 10, first exception causes 100 
> threads, next exception 1000 etc.
> Also is PollingMessageListenerContainer#stop not working, because in case of 
> an Exception first the running-Flag in PollingMessageListenerContainer will 
> be set to false. This causes old ThreadPools not to be cleaned up, the 
> ThreadPools stay alive.
> The Garbage Collector cann't clean up old instances of 
> PollingMessageListenerContainer and Poller.
> I think this Bug relates to CXF-7197
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to