[ 
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)

Reply via email to