[ 
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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED]
> 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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED]
> 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.

Reply via email to