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

[AMQ7, CORE client, consumers] broker not delivering message to consumer after client side exception

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • AMQ 7.2.2.GA
    • AMQ 7.2.0.GA
    • None
    • None
    • Hide

      To reproduce this I had to simulate the exception from (ENTMQBR-1976). For a quick test I did this by hardcoding that a DUMMY exception is thrown from the org.apache.activemq.artemis.core.message.impl.CoreMessage#getBooleanProperty(org.apache.activemq.artemis.api.core.SimpleString) for the first 9 time it is invoked. I think this could be simulated better using byteman script

      • create a transacted shared consumer (that uses the hardcode exception in CoreMessage()).
      • send 12 messages to the topic, each messages should be 100KB.

      Result

      • 9 messages are received on the shared consumer and throw the DUMMY exception
      • 2 messages are received correctly and transaction is committed after each message is received

      the broker side metrics

      • 11 messages listed as delivered
      • 1 message remains on the queue
      • 0 message are listed in the "DELIVERING_COUNT"
      Show
      To reproduce this I had to simulate the exception from ( ENTMQBR-1976 ). For a quick test I did this by hardcoding that a DUMMY exception is thrown from the org.apache.activemq.artemis.core.message.impl.CoreMessage#getBooleanProperty(org.apache.activemq.artemis.api.core.SimpleString) for the first 9 time it is invoked. I think this could be simulated better using byteman script create a transacted shared consumer (that uses the hardcode exception in CoreMessage()). send 12 messages to the topic, each messages should be 100KB. Result 9 messages are received on the shared consumer and throw the DUMMY exception 2 messages are received correctly and transaction is committed after each message is received the broker side metrics 11 messages listed as delivered 1 message remains on the queue 0 message are listed in the "DELIVERING_COUNT"

      After the client experienced the following unexpected exception

      ~~~
      AMQ214008: Failed to handle packet
      java.lang.IndexOutOfBoundsException: readerIndex(19713) + length(4) exceeds writerIndex(19713): UnpooledDuplicatedByteBuf(ridx: 19713, widx: 19713, cap: 19713, unwrapped: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 19713, cap: 19713))
      ~~~

      The consumer did not get sent a message by the broker.

      From debugging, the consumer did have creditsToSend however the corresponding SeverConsumerImpl “availableCredits” seems to be depleted.

              rhn-support-jbertram Justin Bertram
              rhn-support-pfox Patrick Fox (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: