Red Hat Bugzilla – Bug 509994
browsed, cluster durable lvq loses order between persistent and transient messages
Last modified: 2013-02-24 08:23:15 EST
Description of problem:
If due to a browsing subscriber, more than one message exists on queue for a given key and the later message was sent as persistent while the earlier message was sent as transient, then if cluster durability is triggered, and the resulting store used for recovery the newer message will be replaced by the older message.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. start two node cluster
2. create cluster durable lvq
e.g. qpid-config add queue test-queue --order lvq --durable --cluster-durable
3. send transient message to the queue
e.g. echo one | sender --lvq-match-value abc
4. browse the queue (prevents replacement of the previous message)
e.g. receiver --browse --messages 1
5. send a durable message with same key
e.g. echo two | sender --lvq-match-value abc --durable true
6. kill one node to trigger cluster-durable feature
7. stop and recover the remaining node
After recovery, only the older message remains on the queue (i.e. one). The newer message has been incorrectly overridden.
Always have the latest message on the queue.