Details
Description
After restarting the central broker in a simple network of brokers, which consists of one central standalone broker and multiple embedded broker, each intercepting one jms consumer, all producers run into a deadlock.
"VMTransport" daemon prio=3 tid=0x093bd000 nid=0x901 waiting for monitor entry [0xa30d5000..0xa30d5af0]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:450)
- waiting to lock <0xdb314578> (a java.lang.Object)
at org.apache.activemq.broker.region.Queue.addSubscription(Queue.java:210)
at org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:265) - locked <0xaf37ca60> (a java.lang.Object)
- locked <0xdb0c36f0> (a java.lang.Object)
at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:380)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:83)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:92)
at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:529)
"QueueThread:queue://de.gameduell.service.user.UserCache.MessageQueue" daemon prio=3 tid=0x086b8000 nid=0x25 waiting for monitor entry [0xa2fdf000..0xa2fdf8f
0]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegion.java:367)
- waiting to lock <0xaf37ca60> (a java.lang.Object)
at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:332)
at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:445)
at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:132)
at org.apache.activemq.util.BrokerSupport.resend(BrokerSupport.java:56)
at org.apache.activemq.broker.region.RegionBroker.sendToDeadLetterQueue(RegionBroker.java:712)
at org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(BrokerFilter.java:257)
at org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(BrokerFilter.java:257)
at org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(BrokerFilter.java:257)
at org.apache.activemq.broker.MutableBrokerFilter.sendToDeadLetterQueue(MutableBrokerFilter.java:270)
at org.apache.activemq.broker.region.RegionBroker.messageExpired(RegionBroker.java:679)
at org.apache.activemq.broker.region.PrefetchSubscription.dispatchPending(PrefetchSubscription.java:491) - locked <0xdb314578> (a java.lang.Object)
at org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:144)
at org.apache.activemq.broker.region.Queue.iterate(Queue.java:929) - locked <0xaf905fc8> (a org.apache.activemq.broker.region.Queue$2)
at org.apache.activemq.thread.DeterministicTaskRunner.runTask(DeterministicTaskRunner.java:84)
at org.apache.activemq.thread.DeterministicTaskRunner$1.run(DeterministicTaskRunner.java:41)
the full jstack output and bot broker configs are attached.
activemq.xml is the config of the central broker.
activemq-embedded.xml is the config of the embbed one.