You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Eduardo Corral <ec...@tid.es> on 2007/10/04 11:30:08 UTC
Re: deadlock in ActiveMQ 4.1.1 broker?
Hi everyone
Regarding this issue, we keep getting the deadlock:
Found one Java-level deadlock:
=============================
"ActiveMQ Transport: tcp:///127.0.0.1:42001":
waiting to lock monitor 0x01548790 (object 0x8cf573f8, a
org.apache.activemq.transport.InactivityMonitor$2),
which is held by "ActiveMQ Scheduler"
"ActiveMQ Scheduler":
waiting to lock monitor 0x00ddd550 (object 0x8cf4a8c0, a
org.apache.activemq.broker.jmx.ManagedTransportConnection),
which is held by "ActiveMQ Transport: tcp:///127.0.0.1:42001"
Java stack information for the threads listed above:
===================================================
"ActiveMQ Transport: tcp:///127.0.0.1:42001":
at
org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:139)
- waiting to lock <0x8cf573f8> (a
org.apache.activemq.transport.InactivityMonitor$2)
at
org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80)
at
org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93)
at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:47)
- locked <0x8cf57318> (a java.lang.Object)
at
org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1138)
at
org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:805)
at
org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:770)
at
org.apache.activemq.broker.region.PrefetchSubscription.dispatch(PrefetchSubscription.java:404)
at
org.apache.activemq.broker.region.QueueSubscription.dispatch(QueueSubscription.java:172)
at
org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:129)
- locked <0x8d045f50> (a
org.apache.activemq.broker.region.QueueSubscription)
at
org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:191)
- locked <0x8ccfc120> (a
org.apache.activemq.broker.region.cursors.VMPendingMessageCursor)
at
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:234)
- locked <0x8d045fa0> (a java.lang.Object)
at
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:337)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
at
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
at
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:96)
at
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:586)
- locked <0x8cf4a8c0> (a
org.apache.activemq.broker.jmx.ManagedTransportConnection)
at
org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:313)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:127)
- locked <0x8cf4a9d8> (a
org.apache.activemq.transport.InactivityMonitor$1)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
at java.lang.Thread.run(Unknown Source)
"ActiveMQ Scheduler":
at
org.apache.activemq.broker.jmx.ManagedTransportConnection.stop(ManagedTransportConnection.java)
- waiting to lock <0x8cf4a8c0> (a
org.apache.activemq.broker.jmx.ManagedTransportConnection)
at
org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40)
at
org.apache.activemq.broker.TransportConnection.serviceTransportException(TransportConnection.java:216)
at
org.apache.activemq.broker.TransportConnection$1.onException(TransportConnection.java:192)
at
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96)
at
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96)
at
org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:147)
at
org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:159)
at
org.apache.activemq.transport.InactivityMonitor.writeCheck(InactivityMonitor.java:84)
- locked <0x8cf573f8> (a
org.apache.activemq.transport.InactivityMonitor$2)
at
org.apache.activemq.transport.InactivityMonitor.access$100(InactivityMonitor.java:35)
at
org.apache.activemq.transport.InactivityMonitor$2.run(InactivityMonitor.java:57)
at
edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
at
edu.emory.mathcs.backport.java.util.concurrent.FutureTask.runAndReset(FutureTask.java:198)
at
edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:189)
at
edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:213)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Unknown Source)
Found 1 deadlock.
But we're not using VM transport...any clue about this?
Thank you and best regards
Eduardo Corral
Rob Davies escribió:
> this is a known issue - its been addressed in version 5.0 by ensuring
> the vm transport is async by default
>
>
> cheers,
>
> Rob
>
> http://rajdavies.blogspot.com/
>
>
>
> On Sep 14, 2007, at 9:44 AM, Eduardo Corral wrote:
>
>> Hi everyone
>>
>> We're using ActiveMQ 4.1.1 Broker, embedded in our server, and while
>> trying to stop it, we get a deadlock:
>>
>> Java stack information for the threads listed above:
>> ===================================================
>> "ActiveMQ Transport: tcp:///127.0.0.1:64319":
>> at
>> org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:137)
>>
>> - waiting to lock <0x9ac103c8> (a
>> org.apache.activemq.transport.InactivityMonitor$2)
>> at
>> org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:80)
>>
>> at
>> org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:93)
>>
>> at
>> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:47)
>>
>> - locked <0x9ac0fdf8> (a java.lang.Object)
>> at
>> org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1138)
>>
>> at
>> org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:805)
>>
>> at
>> org.apache.activemq.broker.TransportConnection.dispatchSync(TransportConnection.java:770)
>>
>> at
>> org.apache.activemq.broker.region.PrefetchSubscription.dispatch(PrefetchSubscription.java:404)
>>
>> at
>> org.apache.activemq.broker.region.QueueSubscription.dispatch(QueueSubscription.java:172)
>>
>> at
>> org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:129)
>>
>> - locked <0x9ac177a8> (a
>> org.apache.activemq.broker.region.QueueSubscription)
>> at
>> org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:191)
>> - locked <0x9a94e5a8> (a
>> org.apache.activemq.broker.region.cursors.VMPendingMessageCursor)
>> at
>> org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:234)
>>
>> - locked <0x9ac1fae8> (a java.lang.Object)
>> at
>> org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:337)
>>
>> at
>> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
>>
>> at
>> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77)
>>
>> at
>> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
>>
>> at
>> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:96)
>>
>> at
>> org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:586)
>>
>> - locked <0x9ac0d128> (a
>> org.apache.activemq.broker.jmx.ManagedTransportConnection)
>> at
>> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:313)
>> at
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
>>
>> at
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
>>
>> at
>> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
>>
>> at
>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
>>
>> at
>> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:127)
>>
>> - locked <0x9ac103b8> (a
>> org.apache.activemq.transport.InactivityMonitor$1)
>> at
>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>>
>> at
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
>>
>> at java.lang.Thread.run(Thread.java:595)
>> "ActiveMQ Scheduler":
>> at
>> org.apache.activemq.broker.jmx.ManagedTransportConnection.stop(ManagedTransportConnection.java:64)
>>
>> - waiting to lock <0x9ac0d128> (a
>> org.apache.activemq.broker.jmx.ManagedTransportConnection)
>> at
>> org.apache.activemq.util.ServiceSupport.dispose(ServiceSupport.java:40)
>> at
>> org.apache.activemq.broker.TransportConnection.serviceTransportException(TransportConnection.java:216)
>>
>> at
>> org.apache.activemq.broker.TransportConnection$1.onException(TransportConnection.java:192)
>>
>> at
>> org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96)
>>
>> at
>> org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:96)
>>
>> at
>> org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:147)
>>
>> at
>> org.apache.activemq.transport.InactivityMonitor.onException(InactivityMonitor.java:159)
>>
>> at
>> org.apache.activemq.transport.InactivityMonitor.writeCheck(InactivityMonitor.java:84)
>>
>> - locked <0x9ac103c8> (a
>> org.apache.activemq.transport.InactivityMonitor$2)
>> at
>> org.apache.activemq.transport.InactivityMonitor.access$100(InactivityMonitor.java:35)
>>
>> at
>> org.apache.activemq.transport.InactivityMonitor$2.run(InactivityMonitor.java:57)
>>
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
>>
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.FutureTask.runAndReset(FutureTask.java:198)
>>
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java
>>
>> :189)
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:213)
>>
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>
>> at java.lang.Thread.run(Thread.java:595)
>>
>> Found 1 deadlock.
>>
>> Is this a known issue? I couldn't find the same kind of deadlock on
>> the issue tracker.
>>
>> Thank you and best regards
>> Eduardo
>>
>>
>
>