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

Server-side redelivery no longer working with 5.16.1

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.16.1
    • 5.16.2, 5.17.0
    • Broker
    • None

    Description

      Server-side redelivery no longer working with 5.16.x

      Server-side redeliveries triggered by the redeliveryPlugin can no longer be consumed, as they are (incorrectly) suppressed.

      Logs from a test show "suppressing duplicate delivery on connection, poison acking":

             RedeliveryPlugin  175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST2.msgin
      ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST2.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST2.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=1000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}
      

      To reproduce the issue, use existing test "BrokerRedeliveryTest" and modify slightly, so it's using a failover connection.

         protected ActiveMQConnectionFactory createConnectionFactory() throws Exception {
      -        return new ActiveMQConnectionFactory("vm://localhost");
      +        return new ActiveMQConnectionFactory("failover:(vm://localhost)");
         }   @Override

      After this change to the test, tests start to fail and one sees the symptom logged as:

      ... suppressing duplicate delivery on connection, poison acking ... 

      See also AMQ-7298

      Attachments

        1. BrokerRedeliveryTest.java
          10 kB
          Martin Lichtin

        Issue Links

          Activity

            People

              jbonofre Jean-Baptiste Onofré
              lichtin Martin Lichtin
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: