You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Clebert Suconic (Jira)" <ji...@apache.org> on 2021/08/09 17:56:05 UTC

[jira] [Closed] (ARTEMIS-3200) ProtonAbstractReceiver memory leak

     [ https://issues.apache.org/jira/browse/ARTEMIS-3200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clebert Suconic closed ARTEMIS-3200.
------------------------------------
    Fix Version/s: 2.18.0
       Resolution: Fixed

> ProtonAbstractReceiver memory leak
> ----------------------------------
>
>                 Key: ARTEMIS-3200
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3200
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.17.0
>         Environment:  
> We were testing the new version of artemis, 2.16 and 2.17.
> We are running spring integration and are using sync and async message flows which make use of artemis. With our async message flow we encountered no problems, but with the sync message flows we noticed the issues stated above.
>            Reporter: Bas
>            Assignee: Gary Tully
>            Priority: Blocker
>             Fix For: 2.18.0
>
>          Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> Hi,
> Thanks for a wonderfull broker.
> We were testing the new version of artemis, 2.16 and 2.17 and we noticed the memory will go up during our performance tests and eventually the garbace collector can no longer free enough memory to keep running.
> We are running spring integration and are using sync and async message flows which make use of artemis. With our async message flow we encountered no problems, but with the sync message flows we noticed the issues stated above.
> We tracked the issues by using MAT to a lambda in the class [https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonAbstractReceiver.java]
> A largemessage cleanup action is registered through the method addClosable on line 92. This lambda is not remembered for life cycle managment and never de-registered. It seems we create a lot of there ProtonAbstractReceivers through our way of messaging. And they pile up in the session. Only when we close the session memory is freed. That we create a large nr of ProtonAbstractReceiver might also not be correct. I doubt this because we see no issues in our async flows. I'm not sure what these ProtonAbstractReceivers are used for and when they are created and when not. Maybe there is a place where I could look like some related code or some documentation.
> I would like to make a unit tests and see if there is a way this can be fixed but could someone give me a hint when this ProtonAbstracReceiver is created and if there is already a test case resembling what I want to do so I can use that for a quick start?



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