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

Hadrian Zbarcea updated AMQ-5337:
---------------------------------
    Fix Version/s: 5.10.1

> Bug in ConcurrentLinkedQueue leads to excessive CPU-consumption by ActiveMQ 
> process
> -----------------------------------------------------------------------------------
>
>                 Key: AMQ-5337
>                 URL: https://issues.apache.org/jira/browse/AMQ-5337
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0, 5.9.1, 5.10.0
>         Environment: Linux Ubuntu
>            Reporter: Wawan
>             Fix For: 5.10.1, 5.11.0
>
>
> The AdvisoryBroker use a ConcurrentLinkedQueue to store consumers.
> This standard JDK class has a bug which can lead to an OutOfMemory : 
> https://bugs.openjdk.java.net/browse/JDK-8054446
> In our environment we observe that ActiveMQ process cpu usage is continually 
> climbing and that the ConcurrentLinkedQueue in the AdvisoryBroker grows 
> indefinitely.
> The ConcurrentLinkedQueue is a non-blocking concurrent FIFO datastructure 
> provided by the core Java Development Kit API starting from Java 5. 
> AdvisoryBroker use offer() method to add a new consumer in the 
> ConcurrentLinkedQueue, and remove() method to remove it.
> When the consumer removed is the last element of the queue, the Consumer 
> object is nulled but a node remain in the queue. The null node is then never 
> garbage collected. This is true only for the last element of the queue. Any 
> other element is removed safely.
> Related bug : https://issues.apache.org/jira/browse/AMQ-4853



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

Reply via email to