Thorsten Meinl created QPID-8405:
------------------------------------

             Summary: Per-message expiration is treated wrong for AMQP 0-9-1
                 Key: QPID-8405
                 URL: https://issues.apache.org/jira/browse/QPID-8405
             Project: Qpid
          Issue Type: Bug
          Components: Broker-J
    Affects Versions: qpid-java-broker-7.1.7
            Reporter: Thorsten Meinl


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|https://www.rabbitmq.com/ttl.html#per-message-ttl]. 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to