Description
It is possible for a queue to be garbage collected due to inactivity despite undelivered PERSISTENT messages being present on the queue.
Order of events-
- unused queue is marked for garbage collection due to inactivity
- prior to garbage collection, an anonymous producer comes online, sending one or more messages, then closing
- Note: the queue's lastActiveTime is not reset when an anonymous producer is created because they are not bound to a destination at creation.
- queue with pending Message(s) is garbage collected
A simple fix for this seems to be resetting BaseDestination#lastActiveTime to zero each time a message is sent (BaseDestination#messageDelivered(context, messageReference)).
I'll submit a PR with a patch shortly.
Attachments
Issue Links
- is depended upon by
-
AMQ-6587 Failed to remove inactive destination Topic: Destination still has an active subscription
- Resolved