You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Krzysztof Olszewski (Created) (JIRA)" <ji...@apache.org> on 2012/02/27 15:12:48 UTC
[jira] [Created] (AMQ-3741) Deadlock on Broker when JMX is enabled
Deadlock on Broker when JMX is enabled
--------------------------------------
Key: AMQ-3741
URL: https://issues.apache.org/jira/browse/AMQ-3741
Project: ActiveMQ
Issue Type: Bug
Components: Broker, JMX
Affects Versions: 5.5.1, 5.4.3
Reporter: Krzysztof Olszewski
Priority: Critical
With JMX enabled a deadlock might occur due to the fact that there are two broker objects with common Destinations.
Let me provide you with a stacktrace that will clear this up:
Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52293,5,spring-osgi-extender[435a3a]-threads]
Name: ActiveMQ Transport: ssl:///10.0.0.1:52293
Priority: 5
Status: BLOCKED
StackTrace:
org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:47)
-> public synchronized Destination intercept(...)
org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:127)
-> synchronized (destinationsMutex)
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:298)
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:145)
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
org.apache.activemq.broker.region.RegionBroker.addProducer(RegionBroker.java:396)
-> synchronized (purgeInactiveDestinationsTask)
org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
org.apache.activemq.advisory.AdvisoryBroker.addProducer(AdvisoryBroker.java:133)
org.apache.activemq.broker.CompositeDestinationBroker.addProducer(CompositeDestinationBroker.java:56)
org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
org.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:507)
org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
java.lang.Thread.run(Thread.java:619)
Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52148,5,spring-osgi-extender[435a3a]-threads]
Name: ActiveMQ Transport: ssl:///10.0.0.1:52148
Priority: 5
Status: BLOCKED
StackTrace:
org.apache.activemq.broker.region.AbstractRegion.getDestinations(AbstractRegion.java:217)
-> synchronized (destinationsMutex)
org.apache.activemq.broker.region.RegionBroker.getDestinations(RegionBroker.java:142)
org.apache.activemq.broker.region.virtual.VirtualTopic.create(VirtualTopic.java:56)
org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:68)
-> public synchronized void create(...)
org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:442)
-> synchronized (purgeInactiveDestinationsTask)
org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:240)
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:79)
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:546)
org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:121)
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:112)
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardingBridgeSupport.java:672)
org.apache.activemq.network.DemandForwardingBridgeSupport.addConsumerInfo(DemandForwardingBridgeSupport.java:1025)
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:605)
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:497)
org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:165)
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (AMQ-3741) Deadlock on Broker when JMX is
enabled
Posted by "Timothy Bish (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AMQ-3741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13217204#comment-13217204 ]
Timothy Bish commented on AMQ-3741:
-----------------------------------
Do you have a unit test that shows the issue? Have you tested against the latest 5.6-SNAPSHOT? This sounds like something that's already been fixed.
> Deadlock on Broker when JMX is enabled
> --------------------------------------
>
> Key: AMQ-3741
> URL: https://issues.apache.org/jira/browse/AMQ-3741
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, JMX
> Affects Versions: 5.4.3, 5.5.1
> Reporter: Krzysztof Olszewski
> Priority: Critical
>
> With JMX enabled a deadlock might occur due to the fact that there are two broker objects with common Destinations.
> Let me provide you with a stacktrace that will clear this up:
> Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52293,5,spring-osgi-extender[435a3a]-threads]
> Name: ActiveMQ Transport: ssl:///10.0.0.1:52293
> Priority: 5
> Status: BLOCKED
> StackTrace:
> org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:47)
> -> public synchronized Destination intercept(...)
> org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:127)
> -> synchronized (destinationsMutex)
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:298)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> org.apache.activemq.broker.region.RegionBroker.addProducer(RegionBroker.java:396)
> -> synchronized (purgeInactiveDestinationsTask)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.advisory.AdvisoryBroker.addProducer(AdvisoryBroker.java:133)
> org.apache.activemq.broker.CompositeDestinationBroker.addProducer(CompositeDestinationBroker.java:56)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> org.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:507)
> org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> java.lang.Thread.run(Thread.java:619)
>
>
>
>
> Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52148,5,spring-osgi-extender[435a3a]-threads]
> Name: ActiveMQ Transport: ssl:///10.0.0.1:52148
> Priority: 5
> Status: BLOCKED
> StackTrace:
> org.apache.activemq.broker.region.AbstractRegion.getDestinations(AbstractRegion.java:217)
> -> synchronized (destinationsMutex)
> org.apache.activemq.broker.region.RegionBroker.getDestinations(RegionBroker.java:142)
> org.apache.activemq.broker.region.virtual.VirtualTopic.create(VirtualTopic.java:56)
> org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:68)
> -> public synchronized void create(...)
> org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
> org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:442)
> -> synchronized (purgeInactiveDestinationsTask)
> org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:240)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:79)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:546)
> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:121)
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:112)
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardingBridgeSupport.java:672)
> org.apache.activemq.network.DemandForwardingBridgeSupport.addConsumerInfo(DemandForwardingBridgeSupport.java:1025)
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:605)
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:497)
> org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:165)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> java.lang.Thread.run(Thread.java:619)
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Closed] (AMQ-3741) Deadlock on Broker when JMX is enabled
Posted by "Timothy Bish (Closed) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AMQ-3741?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish closed AMQ-3741.
-----------------------------
Resolution: Fixed
>From a code review of trunk this is already resolved by other fixes that have changed the locking strategy for the destinations collection.
> Deadlock on Broker when JMX is enabled
> --------------------------------------
>
> Key: AMQ-3741
> URL: https://issues.apache.org/jira/browse/AMQ-3741
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, JMX
> Affects Versions: 5.4.3, 5.5.1
> Reporter: Krzysztof Olszewski
> Priority: Critical
>
> With JMX enabled a deadlock might occur due to the fact that there are two broker objects with common Destinations.
> Let me provide you with a stacktrace that will clear this up:
> Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52293,5,spring-osgi-extender[435a3a]-threads]
> Name: ActiveMQ Transport: ssl:///10.0.0.1:52293
> Priority: 5
> Status: BLOCKED
> StackTrace:
> org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:47)
> -> public synchronized Destination intercept(...)
> org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:127)
> -> synchronized (destinationsMutex)
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:298)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> org.apache.activemq.broker.region.RegionBroker.addProducer(RegionBroker.java:396)
> -> synchronized (purgeInactiveDestinationsTask)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.advisory.AdvisoryBroker.addProducer(AdvisoryBroker.java:133)
> org.apache.activemq.broker.CompositeDestinationBroker.addProducer(CompositeDestinationBroker.java:56)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> org.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:507)
> org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> java.lang.Thread.run(Thread.java:619)
>
>
>
>
> Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52148,5,spring-osgi-extender[435a3a]-threads]
> Name: ActiveMQ Transport: ssl:///10.0.0.1:52148
> Priority: 5
> Status: BLOCKED
> StackTrace:
> org.apache.activemq.broker.region.AbstractRegion.getDestinations(AbstractRegion.java:217)
> -> synchronized (destinationsMutex)
> org.apache.activemq.broker.region.RegionBroker.getDestinations(RegionBroker.java:142)
> org.apache.activemq.broker.region.virtual.VirtualTopic.create(VirtualTopic.java:56)
> org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:68)
> -> public synchronized void create(...)
> org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
> org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:442)
> -> synchronized (purgeInactiveDestinationsTask)
> org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:240)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:79)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:546)
> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:121)
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:112)
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardingBridgeSupport.java:672)
> org.apache.activemq.network.DemandForwardingBridgeSupport.addConsumerInfo(DemandForwardingBridgeSupport.java:1025)
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:605)
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:497)
> org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:165)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> java.lang.Thread.run(Thread.java:619)
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (AMQ-3741) Deadlock on Broker when JMX is
enabled
Posted by "Krzysztof Olszewski (Commented) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/AMQ-3741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13217208#comment-13217208 ]
Krzysztof Olszewski commented on AMQ-3741:
------------------------------------------
At first I thought about: https://issues.apache.org/jira/browse/AMQ-3070 because threads are hung on: purgeDestinations, addProducer, addConsumer etc.but that's not what causing the deadlock.
I haven't tested it on 5.6 yet only on released: 5.4.3 and 5.5.1. It's rather hard to reproduce.
> Deadlock on Broker when JMX is enabled
> --------------------------------------
>
> Key: AMQ-3741
> URL: https://issues.apache.org/jira/browse/AMQ-3741
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, JMX
> Affects Versions: 5.4.3, 5.5.1
> Reporter: Krzysztof Olszewski
> Priority: Critical
>
> With JMX enabled a deadlock might occur due to the fact that there are two broker objects with common Destinations.
> Let me provide you with a stacktrace that will clear this up:
> Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52293,5,spring-osgi-extender[435a3a]-threads]
> Name: ActiveMQ Transport: ssl:///10.0.0.1:52293
> Priority: 5
> Status: BLOCKED
> StackTrace:
> org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:47)
> -> public synchronized Destination intercept(...)
> org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:127)
> -> synchronized (destinationsMutex)
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:298)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151)
> org.apache.activemq.broker.region.RegionBroker.addProducer(RegionBroker.java:396)
> -> synchronized (purgeInactiveDestinationsTask)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.advisory.AdvisoryBroker.addProducer(AdvisoryBroker.java:133)
> org.apache.activemq.broker.CompositeDestinationBroker.addProducer(CompositeDestinationBroker.java:56)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.BrokerFilter.addProducer(BrokerFilter.java:93)
> org.apache.activemq.broker.MutableBrokerFilter.addProducer(MutableBrokerFilter.java:99)
> org.apache.activemq.broker.TransportConnection.processAddProducer(TransportConnection.java:507)
> org.apache.activemq.command.ProducerInfo.visit(ProducerInfo.java:105)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> java.lang.Thread.run(Thread.java:619)
>
>
>
>
> Thread: Thread[ActiveMQ Transport: ssl:///10.0.0.1:52148,5,spring-osgi-extender[435a3a]-threads]
> Name: ActiveMQ Transport: ssl:///10.0.0.1:52148
> Priority: 5
> Status: BLOCKED
> StackTrace:
> org.apache.activemq.broker.region.AbstractRegion.getDestinations(AbstractRegion.java:217)
> -> synchronized (destinationsMutex)
> org.apache.activemq.broker.region.RegionBroker.getDestinations(RegionBroker.java:142)
> org.apache.activemq.broker.region.virtual.VirtualTopic.create(VirtualTopic.java:56)
> org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.create(VirtualDestinationInterceptor.java:68)
> -> public synchronized void create(...)
> org.apache.activemq.broker.region.CompositeDestinationInterceptor.create(CompositeDestinationInterceptor.java:52)
> org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:442)
> -> synchronized (purgeInactiveDestinationsTask)
> org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:240)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:79)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
> org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:546)
> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:121)
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:112)
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> org.apache.activemq.network.DemandForwardingBridgeSupport.addSubscription(DemandForwardingBridgeSupport.java:672)
> org.apache.activemq.network.DemandForwardingBridgeSupport.addConsumerInfo(DemandForwardingBridgeSupport.java:1025)
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteConsumerAdvisory(DemandForwardingBridgeSupport.java:605)
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:497)
> org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:165)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:227)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91)
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:220)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> java.lang.Thread.run(Thread.java:619)
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira