[
https://issues.apache.org/jira/browse/AMQ-6188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brian D. Johnson updated AMQ-6188:
----------------------------------
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.
was:
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 must 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.
> Queues containing PERSISTENT messages can be garbage collected due to
> Inactivity
> --------------------------------------------------------------------------------
>
> Key: AMQ-6188
> URL: https://issues.apache.org/jira/browse/AMQ-6188
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.13.0, 5.13.1
> Reporter: Brian D. Johnson
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)