Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-8405

Per-message expiration is treated wrong for AMQP 0-9-1

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: qpid-java-broker-7.1.7
    • Fix Version/s: None
    • Component/s: Broker-J
    • Labels:
      None

      Description

      We are using QPid with AMQP 0-9-1 support as an embedded alternative to RabbitMQ. RabbitMQ has extended the 0-9-1 specification with per-message TTLs. The documentation states that the value of the expiration header is the time-to-live in milliseconds. However, when we set an expiration of 60,000 when sending a message to QPid this message gets discarded immediately and is not delivered to any consumer. I had a look at the code and the bug is obvious: instead of treating the expiration header as a TTL it is treated as an absolute expiration timestamp, see org.apache.qpid.server.queue.QueueEntryImpl.expired(). Either QPid shouldn't support expiration at all for AMPQ 0-9-1 since it's not part of the standard or it should follow the RabbitMQ implementation since I assume it was introduced by them.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              sithmein Thorsten Meinl
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: