activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQ-1950) Deadlock using temporary queues in Pure Master/Slave setup
Date Tue, 30 Sep 2008 14:21:52 GMT

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

Gary Tully updated AMQ-1950:
----------------------------

    Attachment: amq-1950.patch.txt

This patch should resolve the issue, the wakeup outside of the dispatchLock makes sense in
all cases, as the wakeup deals with optimized and the additional isSlave check which causes
the problem in this case.
I want to verify a full test run with this change and also see if I can generate a tests case
that reproduces the problem.
Hans, if you get a chance, can you verify your jboss scenario with this fix? thanks.

> Deadlock using temporary queues in Pure Master/Slave setup
> ----------------------------------------------------------
>
>                 Key: AMQ-1950
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1950
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: JBoss 4.0.5 GA with ActiveMQ resource adapter and Java 1.6 update
7
> I used the ActiveMQ 5.2.0 RC1 from 10th september.
>            Reporter: Hans Bausewein
>            Assignee: Gary Tully
>         Attachments: amq-1950.patch.txt, deadlock.txt
>
>
> The deadlock occurs on the slave after sending some 30 messages. Sending a few at a time
works fine.
> The test application is a MessageDrivenBean that sends a message to another MDB with
a temporary reply queue.
> Name: TempQueue:  ID:selten.marketxs.com-40254-1222245868043-0:14:6
> State: WAITING on java.util.concurrent.locks.ReentrantLock$NonfairSync@f30862 owned by:
VMTransport: vm://solow.marketxs.com#1
> Total blocked: 0  Total waited: 1
> Stack trace: 
> sun.misc.Unsafe.park(Native Method)
> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
> java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
> java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
> org.apache.activemq.broker.region.Queue.iterate(Queue.java:992)
>    - locked org.apache.activemq.broker.region.Queue$2@16b775f
> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
> Name: VMTransport: vm://solow.marketxs.com#1
> State: BLOCKED on org.apache.activemq.broker.region.Queue$2@16b775f owned by: TempQueue:
 ID:selten.marketxs.com-40254-1222245868043-0:14:6
> Total blocked: 9  Total waited: 2,684
> Stack trace: 
> org.apache.activemq.broker.region.Queue.iterate(Queue.java:952)
> org.apache.activemq.broker.region.Queue.wakeup(Queue.java:1136)
> org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:249)
> org.apache.activemq.broker.region.TempQueue.addSubscription(TempQueue.java:74)
> org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:275)
>    - locked java.lang.Object@1ba2be8
> org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:378)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
> org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:83)
> org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:86)
> org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:93)
> org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:541)
> org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:345)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:205)
> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
> I'll try to reproduce the issue with a stand-alone JMS client. It also happens without
JBoss clustering.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message