Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-1928

Message conversion on certain body types will cause NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 2.6.1
    • 2.6.3, 2.7.0
    • AMQP, Broker
    • None

    Description

       

      Steps to produce, using a producing application (running AMQPNetLite) connecting to node1 of the cluster:

      • Create queue1, publish 199 messages to it
      • Create queue2, publish 1 message to it

      Running a consuming application (AMQPNetLite) connecting to node2 of the cluster:

      • On node1 of the cluster, queue1 & queue2 now have 0 messages in it
      • On node2 of the cluster, queue1 has 200 messages in it and queue2 has 2 messages in it (i.e. an additional message in each queue, even though the consuming application is not publishing any messages).
      • The consuming application connected to node2 of the cluster does not consume any messages off either queue1 or queue2 from node2 (of the cluster).

      In artemis.log on node2 of the cluster, the following appears:

      2018-06-13 02:41:00,604 WARN  [org.apache.activemq.artemis.core.server] AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=1, filter=null, binding=LocalQueueBinding [address=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request, queue=QueueImpl[name=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=f80e9286-6e9f-11e8-bd64-0204cf8299ac], temp=false]@50517445, filter=null, name=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request, clusterName=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-requestf80e9286-6e9f-11e8-bd64-0204cf8299ac]], message=Reference[117]:NON-RELIABLE:LargeServerMessage[messageID=117,durable=false,userID=null,priority=0, timestamp=0,expiration=0, durable=false, address=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request, properties=TypedProperties[_AMQ_LARGE_SIZE=330649]]@2025498374: java.lang.IllegalStateException: Can't deliver message java.lang.NullPointerException
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:652) [artemis-amqp-protocol-2.6.1.jar:]
              at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1106) [artemis-server-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:464) [artemis-server-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2934) [artemis-server-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2402) [artemis-server-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$2000(QueueImpl.java:107) [artemis-server-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:3207) [artemis-server-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66) [artemis-commons-2.6.1.jar:2.6.1]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_171]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_171]
              at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.6.1.jar:2.6.1]
      Caused by: java.lang.NullPointerException
              at org.apache.activemq.artemis.core.message.impl.CoreMessage.internalWritableBuffer(CoreMessage.java:360) [artemis-core-client-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.core.message.impl.CoreMessage.getBodyBuffer(CoreMessage.java:353) [artemis-core-client-2.6.1.jar:2.6.1]
              at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.convertBody(CoreAmqpConverter.java:384) [artemis-amqp-protocol-2.6.1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:126) [artemis-amqp-protocol-2.6.1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:106) [artemis-amqp-protocol-2.6.1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverMessage(ProtonServerSenderContext.java:681) [artemis-amqp-protocol-2.6.1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:643) [artemis-amqp-protocol-2.6.1.jar:]
              ... 12 more
      

      Attachments

        1. node2-broker.xml
          10 kB
          Simon Chalmers
        2. node1-broker.xml
          10 kB
          Simon Chalmers

        Issue Links

          Activity

            People

              Unassigned Unassigned
              auskeptic Simon Chalmers
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: