Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-6188

Queues containing PERSISTENT messages can be garbage collected due to Inactivity

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.13.0, 5.13.1
    • 5.13.2, 5.14.0
    • Broker
    • None

    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

          Activity

            People

              cshannon Christopher L. Shannon
              brianjohnson Brian D. Johnson
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: