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]