You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Francois Godin (JIRA)" <ji...@apache.org> on 2015/01/23 22:38:35 UTC

[jira] [Updated] (AMQCPP-560) Memory consumption increase and crash when creating sessions on multiple threads

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

Francois Godin updated AMQCPP-560:
----------------------------------
    Attachment: repro.cpp

Here is the file used for the reproduction procedure. The string URI need to point to a valid ActiveMq server.

Compile (with -std=gnu++11) and run. While running, the system monitor can be used to track the memory. It go from 20m to > 100m.

If the line "#define THREAD" is removed, there is no problem.

> Memory consumption increase and crash when creating sessions on multiple threads
> --------------------------------------------------------------------------------
>
>                 Key: AMQCPP-560
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-560
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 3.8.2, 3.8.3
>         Environment: Linux(gcc)
> Windows(Visual studio)
>            Reporter: Francois Godin
>            Assignee: Timothy Bish
>         Attachments: repro.cpp
>
>
> A program have one connection and may create many threads. Each of those thread can then use that connection to generate a session. The problem happen when the session is destroyed. The memory consumption do not go back to what it was before.
> In addition, it seems that 3.8.3 on Windows (not tested on Linux with that version) is prone to crash in that situation.
> I've tried valgrind and dr memory and they did not find memory leak. This should means that the memory is still reachable.
> I've managed to build a C++11 example program. It should be noted that this program create only one session at a time (by using join() to wait). Also, if the session is created on the current thread (by not defining THREAD), then the memory stay stable.



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