Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-626

address in invalid state, preventing any usage, after sending message via hawtio to an address

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • A-MQ 7.0.0.CR1
    • A-MQ 7.0.0.ER18
    • None
    • Hide
      1. start broker
      2. via hawtio create anycast address 'test'
      3. via hawtio create queue in this address 'test'
      4. via hawtio send a message to an address 'test' (not to a queue)
      5. try to receive via AMQP client from that queue
      Show
      start broker via hawtio create anycast address 'test' via hawtio create queue in this address 'test' via hawtio send a message to an address 'test' (not to a queue) try to receive via AMQP client from that queue

      messagess send via hawto to an address will break that address and its queues for further use. This will basically lead to loss of any already enqueued messages.

      Reproducibility: 100%

      Actual results:

      • client is unable to receive anything
      • in hawtio statistics, message count is increased by one for every receiver call
      • any consecutive use of that particular address/queue is impossible due to this invalid state

      Expected results:

      • receiver will receive a message
      • statistics will get correctly updated

      Broker log:

      15:15:40,276 WARN  [org.apache.activemq.artemis.core.server] AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=0, filter=null, binding=LocalQueueBinding [address=test.debug, queue=QueueImpl[name=test.debug, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=2634e55c-1b94-11e7-9a2c-643150236e4b], temp=false]@275cd12e, filter=null, name=test.debug, clusterName=test.debug2634e55c-1b94-11e7-9a2c-643150236e4b]], message=Reference[14]:NON-RELIABLE:CoreMessage[messageID=14,durable=false,userID=null,priority=0, timestamp=Fri Apr 07 15:15:20 CEST 2017,expiration=0, durable=false, address=test.debug,properties=TypedProperties[]]@2091087701: java.lang.IllegalStateException: Can't deliver message java.lang.IndexOutOfBoundsException: readerIndex(1) + length(4) exceeds writerIndex(3): ReadOnlyByteBuf(ridx: 1, widx: 3, cap: 3/3, unwrapped: UnpooledSlicedByteBuf(ridx: 0, widx: 3, cap: 3/3, unwrapped: UnpooledUnsafeHeapByteBuf(ridx: 0, widx: 61, cap: 64)))
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:512) [artemis-amqp-protocol-2.0.0.amq-700003-redhat-1.jar:]
              at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1050) [artemis-server-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:430) [artemis-server-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2649) [artemis-server-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2138) [artemis-server-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$1700(QueueImpl.java:102) [artemis-server-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:2882) [artemis-server-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$ExecutorTask.run(OrderedExecutorFactory.java:101) [artemis-commons-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_121]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_121]
              at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]
      Caused by: java.lang.IndexOutOfBoundsException: readerIndex(1) + length(4) exceeds writerIndex(3): ReadOnlyByteBuf(ridx: 1, widx: 3, cap: 3/3, unwrapped: UnpooledSlicedByteBuf(ridx: 0, widx: 3, cap: 3/3, unwrapped: UnpooledUnsafeHeapByteBuf(ridx: 0, widx: 61, cap: 64)))
              at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1395) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.buffer.AbstractByteBuf.readInt(AbstractByteBuf.java:766) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.buffer.WrappedByteBuf.readInt(WrappedByteBuf.java:571) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at io.netty.buffer.WrappedByteBuf.readInt(WrappedByteBuf.java:571) [netty-all-4.1.5.Final-redhat-1.jar:4.1.5.Final-redhat-1]
              at org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:148) [artemis-commons-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.api.core.SimpleString.readNullableSimpleString(SimpleString.java:143) [artemis-commons-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.core.buffers.impl.ChannelBufferWrapper.readNullableSimpleString(ChannelBufferWrapper.java:69) [artemis-commons-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.reader.TextMessageUtil.readBodyText(TextMessageUtil.java:37) [artemis-core-client-2.0.0.amq-700003-redhat-1.jar:2.0.0.amq-700003-redhat-1]
              at org.apache.activemq.artemis.protocol.amqp.converter.jms.ServerJMSTextMessage.decode(ServerJMSTextMessage.java:94) [artemis-amqp-protocol-2.0.0.amq-700003-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:114) [artemis-amqp-protocol-2.0.0.amq-700003-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:104) [artemis-amqp-protocol-2.0.0.amq-700003-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverMessage(ProtonServerSenderContext.java:601) [artemis-amqp-protocol-2.0.0.amq-700003-redhat-1.jar:]
              at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:506) [artemis-amqp-protocol-2.0.0.amq-700003-redhat-1.jar:]
              ... 10 more
      
      

            rh-ee-ataylor Andy Taylor
            zkraus@redhat.com Zdenek Kraus
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: