[
https://issues.apache.org/jira/browse/AMQ-9420?focusedWorklogId=901218&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-901218
]
ASF GitHub Bot logged work on AMQ-9420:
---------------------------------------
Author: ASF GitHub Bot
Created on: 23/Jan/24 15:15
Start Date: 23/Jan/24 15:15
Worklog Time Spent: 10m
Work Description: cshannon commented on code in PR #1142:
URL: https://github.com/apache/activemq/pull/1142#discussion_r1463434575
##########
activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java:
##########
@@ -1545,8 +1545,9 @@ long updateIndex(Transaction tx, KahaAddMessageCommand
command, Location locatio
if (previous == null) {
previous = sd.messageIdIndex.put(tx, command.getMessageId(), id);
if (previous == null) {
- incrementAndAddSizeToStoreStat(tx, command.getDestination(),
location.getSize());
sd.orderIndex.put(tx, priority, id, new
MessageKeys(command.getMessageId(), location));
Review Comment:
The entire method is already protected by the index write lock here:
https://github.com/apache/activemq/blob/0b95f93449e58a855efd2fb03731432f396b18e1/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/MessageDatabase.java#L1342
This change is probably not even necessary since it's already under a lock
and any exception should abort and shut things down normally but it just seemed
to make more sense to not increment until adding to the index. but really it
doesn't much matter since the index isn't commuted anyways if it isn't
successful.
Issue Time Tracking
-------------------
Worklog Id: (was: 901218)
Time Spent: 0.5h (was: 20m)
> KahaDB durable subscription stats can go negative on duplicate acks
> -------------------------------------------------------------------
>
> Key: AMQ-9420
> URL: https://issues.apache.org/jira/browse/AMQ-9420
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.18.3, 6.0.1
> Reporter: Christopher L. Shannon
> Assignee: Christopher L. Shannon
> Priority: Major
> Fix For: 6.1.0, 5.18.4, 5.17.7, 6.0.2
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> AMQ-6375 added support for non blocking durable subscription statistics to
> KahaDB to track pending message count and message size metrics. By default
> this is disabled and can be enabled with the enableSubscriptionStatistics
> flag on KahaDB.
> On rare occasions I have noticed that sometimes the metrics may got negative
> or be slightly off. I found an area where it's possible if a duplicate ack
> comes in then in some scenarios the metrics may be deprecated twice. This
> issue only applies to the subscription stats and not the store statistics for
> the overall destination as those stats would only get decremented once when
> the message is removed from the order index.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)