Christopher L. Shannon created AMQ-9436:
-------------------------------------------
Summary: StoreQueueCursor creates different audits for persistent
and non persistent cursors
Key: AMQ-9436
URL: https://issues.apache.org/jira/browse/AMQ-9436
Project: ActiveMQ Classic
Issue Type: Bug
Components: Broker
Affects Versions: 6.0.1, 5.18.3
Reporter: Christopher L. Shannon
Assignee: Christopher L. Shannon
Fix For: 6.1.0, 5.18.4, 6.0.2
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)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)