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

Contention on message properties with amqp jms transfromer and kahadb concurrentStoreAndDispatch

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.15.0
    • 5.15.5
    • AMQP
    • None

    Description

      Openwire to AMQP

      Send can fail with ConcurrentModificationException. Stack trace:

      javax.jms.JMSException: java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException
      at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:54)
      at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1403)
      at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1436)
      at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1323)
      at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1976)
      at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:288)
      at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:223)
      at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
      at org.apache.activemq.transport.amqp.interop.OpenWireToAmqpConcurrentStoreAndDispatchTest$2.run(OpenWireToAmqpConcurrentStoreAndDispatchTest.java:158)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.Throwable: java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException
      at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.util.concurrent.FutureTask.get(FutureTask.java:192)
      at org.apache.activemq.broker.region.Queue.doMessageSend(Queue.java:924)
      at org.apache.activemq.broker.region.Queue.send(Queue.java:767)
      at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:505)
      at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:477)
      at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:293)
      at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
      at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:295)
      at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
      at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:572)
      at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)
      at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:330)
      at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:194)
      at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
      at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125)
      at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301)
      at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
      at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)
      at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)
      ... 1 more
      Caused by: java.util.ConcurrentModificationException
      at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
      at java.util.HashMap$KeyIterator.next(HashMap.java:1461)
      at org.apache.activemq.util.MarshallingSupport.marshalPrimitiveMap(MarshallingSupport.java:61)
      at org.apache.activemq.command.Message.beforeMarshall(Message.java:261)
      at org.apache.activemq.openwire.v11.MessageMarshaller.looseMarshal(MessageMarshaller.java:281)
      at org.apache.activemq.openwire.v11.ActiveMQMessageMarshaller.looseMarshal(ActiveMQMessageMarshaller.java:111)
      at org.apache.activemq.openwire.v11.ActiveMQBytesMessageMarshaller.looseMarshal(ActiveMQBytesMessageMarshaller.java:111)
      at org.apache.activemq.openwire.OpenWireFormat.marshal(OpenWireFormat.java:162)
      at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.addMessage(KahaDBStore.java:537)
      at org.apache.activemq.store.kahadb.KahaDBStore$StoreQueueTask.run(KahaDBStore.java:1513)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      ... 1 more

      Attachments

        Activity

          People

            tabish Timothy A. Bish
            gtully Gary Tully
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: