Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-1705

Deadlock between VMTransport and QueueThread

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.1.0
    • 5.2.0
    • Transport
    • None
    • Active MQ 5.1.0-RC2
      java version "1.6.0_04"
      Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
      Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode)
      Solaris 10

    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.

      Attachments

        1. ASF.LICENSE.NOT.GRANTED--activemq-embedded.xml
          2 kB
          Carsten Krebs
        2. ASF.LICENSE.NOT.GRANTED--activemq.xml
          2 kB
          Carsten Krebs
        3. ASF.LICENSE.NOT.GRANTED--jstack.log
          102 kB
          Carsten Krebs

        Activity

          People

            rajdavies Robert Davies
            cw_krebs Carsten Krebs
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: