You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Joe (Jira)" <ji...@apache.org> on 2022/08/23 20:39:00 UTC

[jira] [Updated] (AMQ-9061) Memory Leak when Trying to Connect to Inactive ActiveMQ Process

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

Joe updated AMQ-9061:
---------------------
    Description: 
When ActiveMQ is shutdown and we try to connect, we are seeing approximately 2 threads created per second that are never closed. 

Here is an example of the thread status from jstack:

 
{code:java}
"ActiveMQ Connection Executor: unconnected" #246 daemon prio=5 os_prio=0 tid=0x00007f43b8016000 nid=0xbc3b waiting on condition [0x00007f44401d7000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000088681188> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
 {code}
 

 

If it's relevant, we try to connect through an instance of ActiveMQConnectionFactory, using this function

 
{code:java}
createConnection​(String userName, String password) {code}

We do receive and catch the expected error that the connection to ActiveMQ was refused.

Of course, this eventually causes our application to crash.

  was:
When ActiveMQ is shutdown and we try to connect, we are seeing approximately 2 threads created per second that are never closed. 

Here is an example of the thread status from jstack:

 
{code:java}
"ActiveMQ Connection Executor: unconnected" #246 daemon prio=5 os_prio=0 tid=0x00007f43b8016000 nid=0xbc3b waiting on condition [0x00007f44401d7000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000088681188> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
 {code}
 

 

If it's relevant, we try to connect through an instance of ActiveMQConnectionFactory, using this function

 
createConnection​(String userName, String password)
We do receive and catch the expected error that the connection to ActiveMQ was refused.

Of course, this eventually causes our application to crash.


> Memory Leak when Trying to Connect to Inactive ActiveMQ Process
> ---------------------------------------------------------------
>
>                 Key: AMQ-9061
>                 URL: https://issues.apache.org/jira/browse/AMQ-9061
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 5.15.2
>            Reporter: Joe
>            Priority: Major
>
> When ActiveMQ is shutdown and we try to connect, we are seeing approximately 2 threads created per second that are never closed. 
> Here is an example of the thread status from jstack:
>  
> {code:java}
> "ActiveMQ Connection Executor: unconnected" #246 daemon prio=5 os_prio=0 tid=0x00007f43b8016000 nid=0xbc3b waiting on condition [0x00007f44401d7000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x0000000088681188> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>         at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
>         at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
>  {code}
>  
>  
> If it's relevant, we try to connect through an instance of ActiveMQConnectionFactory, using this function
>  
> {code:java}
> createConnection​(String userName, String password) {code}
> We do receive and catch the expected error that the connection to ActiveMQ was refused.
> Of course, this eventually causes our application to crash.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)