Race condition in ActiveMQ Journal Checkpoint worker thread cleanup leads to
multiple running instances
-------------------------------------------------------------------------------------------------------
Key: AMQ-3161
URL: https://issues.apache.org/jira/browse/AMQ-3161
Project: ActiveMQ
Issue Type: Bug
Components: Message Store
Affects Versions: 5.4.2
Environment: CentOS 5.2
Reporter: Craig Condit
Priority: Critical
If the ActiveMQ Journal Checkpoint worker thread dies for any reason, any
updates to KahaDB trigger the thread to be restarted. Unfortunately, there is a
race condition between the Thread.isAlive() check and the restart of the
thread, potentially leading to multiple instances of the thread being spawned.
We have observed in a busy environment as many as 8-10 instances of this
thread, all waking up every 5 seconds to perform database checkpoints, bringing
throughput on the broker to a halt.
The attached patch adds a lock around access to creation/destruction of this
thread and prevents a second instance from being launched inadvertently.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.