You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2011/08/16 19:17:27 UTC
[jira] [Created] (AMQ-3455) Broker may deadlock when creating
queues under load with wildcard consumers
Broker may deadlock when creating queues under load with wildcard consumers
---------------------------------------------------------------------------
Key: AMQ-3455
URL: https://issues.apache.org/jira/browse/AMQ-3455
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.5.0
Reporter: Gary Tully
Assignee: Gary Tully
Fix For: 5.6.0
{code}Found one Java-level deadlock:
=============================
"ActiveMQ NIO Worker":
waiting to lock monitor 108de7878 (object 7f4ca0520, a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor),
which is held by "ActiveMQ NIO Worker"
"ActiveMQ NIO Worker":
waiting to lock monitor 108de64c8 (object 7f4ca1468, a java.lang.Object),
which is held by "ActiveMQ NIO Worker"
"ActiveMQ NIO Worker":
waiting to lock monitor 108de7878 (object 7f4ca0520, a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor),
which is held by "ActiveMQ NIO Worker"
Java stack information for the threads listed above:
===================================================
"ActiveMQ NIO Worker":
at org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:67)
- waiting to lock <7f4ca0520> (a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor)
at org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:450)
at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:247)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:80)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:556)
at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
- locked <7f5c933e8> (a org.apache.activemq.transport.InactivityMonitor$1)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
"ActiveMQ NIO Worker":
at org.apache.activemq.broker.region.AbstractRegion.getDestinations(AbstractRegion.java:231)
- waiting to lock <7f4ca1468> (a java.lang.Object)
at org.apache.activemq.broker.region.RegionBroker.getDestinations(RegionBroker.java:145)
at org.apache.activemq.broker.region.virtual.VirtualTopic.create(VirtualTopic.java:56)
at org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:68)
- locked <7f4ca0520> (a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor)
at org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:450)
at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:247)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:80)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:556)
at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
- locked <7f564acc8> (a org.apache.activemq.transport.InactivityMonitor$1)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
"ActiveMQ NIO Worker":
at org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:47)
- waiting to lock <7f4ca0520> (a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor)
at org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
at org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:129)
- locked <7f4ca1468> (a java.lang.Object)
at org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:301)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
at org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:155)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:520)
at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:300)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:468)
at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
- locked <7f52f5a90> (a org.apache.activemq.transport.InactivityMonitor$1)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Found 1 deadlock.{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (AMQ-3455) Broker may deadlock when creating
queues under load with wildcard consumers
Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AMQ-3455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully resolved AMQ-3455.
-----------------------------
Resolution: Fixed
fix in http://svn.apache.org/viewvc?rev=1158591&view=rev lock order problem, but method sync was unnecessary
> Broker may deadlock when creating queues under load with wildcard consumers
> ---------------------------------------------------------------------------
>
> Key: AMQ-3455
> URL: https://issues.apache.org/jira/browse/AMQ-3455
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.5.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Fix For: 5.6.0
>
>
> {code}Found one Java-level deadlock:
> =============================
> "ActiveMQ NIO Worker":
> waiting to lock monitor 108de7878 (object 7f4ca0520, a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor),
> which is held by "ActiveMQ NIO Worker"
> "ActiveMQ NIO Worker":
> waiting to lock monitor 108de64c8 (object 7f4ca1468, a java.lang.Object),
> which is held by "ActiveMQ NIO Worker"
> "ActiveMQ NIO Worker":
> waiting to lock monitor 108de7878 (object 7f4ca0520, a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor),
> which is held by "ActiveMQ NIO Worker"
> Java stack information for the threads listed above:
> ===================================================
> "ActiveMQ NIO Worker":
> at org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:67)
> - waiting to lock <7f4ca0520> (a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor)
> at org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
> at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:450)
> at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:247)
> at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:80)
> at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:556)
> at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
> at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
> at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> - locked <7f5c933e8> (a org.apache.activemq.transport.InactivityMonitor$1)
> at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
> at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
> at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
> at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> "ActiveMQ NIO Worker":
> at org.apache.activemq.broker.region.AbstractRegion.getDestinations(AbstractRegion.java:231)
> - waiting to lock <7f4ca1468> (a java.lang.Object)
> at org.apache.activemq.broker.region.RegionBroker.getDestinations(RegionBroker.java:145)
> at org.apache.activemq.broker.region.virtual.VirtualTopic.create(VirtualTopic.java:56)
> at org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:68)
> - locked <7f4ca0520> (a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor)
> at org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
> at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:450)
> at org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:247)
> at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:80)
> at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:556)
> at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
> at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
> at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> - locked <7f564acc8> (a org.apache.activemq.transport.InactivityMonitor$1)
> at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
> at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
> at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
> at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> "ActiveMQ NIO Worker":
> at org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:47)
> - waiting to lock <7f4ca0520> (a org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor)
> at org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
> at org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:129)
> - locked <7f4ca1468> (a java.lang.Object)
> at org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:301)
> at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> at org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:155)
> at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:520)
> at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:300)
> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
> at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
> at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
> at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
> at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:468)
> at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
> at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
> at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
> at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> - locked <7f52f5a90> (a org.apache.activemq.transport.InactivityMonitor$1)
> at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
> at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
> at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
> at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:680)
> Found 1 deadlock.{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira