Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.18
-
None
Description
When re-routing messages from a priority queue (via the queue's QMF purge method) back to the same queue, the PriorityQueue's "messages" deque will become out-of-sync with the state of its "fifo" MessageDeque. Since the "messages" deque contains pointers into the "fifo" deque, this will lead to a broker crash as the pointers are no longer valid.
This issue occurs because "MessageDequeue::index()" will return index zero for messages that are sequenced prior the start of the deque.
Steps to reproduce:
(1) Create a priority queue
(2) Add several messages to the queue
(3) Issue a purge on the queue such that the messages return to the same queue
(4) Observe that the "messages" collection within the queue's PriorityQueue collection does not match its corresponding "fifo" collection.