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)