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

MQTT uses duplicate packet IDs for PUBLISH messages

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.9.0
    • 5.10.0
    • MQTT
    • None
    • Patch Available

    Description

      MQTT protocol converters does not correctly generate unique packet ids for retained and non-retained publish messages sent to clients. MQTT requires that all Publish messages with QoS > 0 must have a unique packet id which can be used by clients to coordinate the PUBACK, PUBREC, PUBREL and PUBCOMP messages depending upon the QoS flow.

      Although retained messages published on creation of client subscriptions are copies of retained messages, they must carry a unique packet id when dispatched to clients. ActiveMQ re-uses the retained message's packet id, which makes it difficult to acknowledge these messages when wildcard topics are used.

      ActiveMQ also sends the same non-retained message multiple times for every matching subscription for overlapping subscriptions. These messages also re-use the publisher's message id as the packet id, which breaks client acknowledgment.

      A patch is included, which fixes all the above scenarios. It generates a unique packet id for every publish (retained and non-retained), and also ensures that redelivery on the same connection will re-use message ids, with the dup flag set. The patch also maps JMS redelivery status for a subscription to the MQTT Dup flag to indicate duplicate messages. Unit tests are included to test correct packet id generation.

      Attachments

        1. AMQ-5092.patch
          15 kB
          Dhiraj Sureshkumar Bokde
        2. AMQ-5092.patch2
          18 kB
          Dhiraj Sureshkumar Bokde
        3. AMQ-5092.patch3
          25 kB
          Dhiraj Sureshkumar Bokde
        4. AMQ-5092.patch4
          9 kB
          Dhiraj Sureshkumar Bokde

        Activity

          People

            gtully Gary Tully
            dhirajsb Dhiraj Sureshkumar Bokde
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: