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

StoreQueueCursor creates different audits for persistent and non persistent cursors

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.18.3, 6.0.1
    • 6.1.0, 5.18.4, 5.17.7, 6.0.2
    • Broker
    • None

    Description

      While working on AMQ-9435 I noticed that StoreQueueCursor incorrectly sets the start flag to true first before calling calling super.start() in the start method. This means that when super is called the message audit is never initialized as it thinks it was already started so it stays null forever. This causes both the persistent and non-persistent cursors to create their own audits which ends up duplicating objects when they should share the same audit so we get duplicate detection across persistent and non persistent messages and also so that we save memory by not duplicating the objects and allowing audit depth config to control how large the audit is. 

      Something else I noticed is that the start/stop methods do not protect against calling them more than once and they should to prevent duplicate initialization so I also will fix that.

      I checked and durables are already correct with their audit tracking (the audit is passed down to all of the sub prefetches and shared)

      Attachments

        Activity

          People

            cshannon Christopher L. Shannon
            cshannon Christopher L. Shannon
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 20m
                20m