[ 
https://issues.apache.org/jira/browse/ARTEMIS-4095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17736635#comment-17736635
 ] 

Artyom Tarasenko commented on ARTEMIS-4095:
-------------------------------------------

Now, knowing that the problem is in the accounting of the persistentSize of the 
delivering messages, it was easy to find the reason why it keeps growing: 
incrementDeliverered() size in the test scenario above is always adding more 
than decrementDeliverered(). It's possible to see it when sending a single 
message and consume it with a XA Consumer: the persistentCount drops to 0, but 
persistenSize stays >0. Comparing the refereneces for incrementing and 
decrementing it turned out that the incrementing message has "__AMQ_CID" 
property set, while decrement doesn't have it. Which in turn happens because 
the fix for ARTEMIS-980 has a (meanwhile?) wrong assumption about the internal 
sessions:

 
{code:java}
            //internal session always delivers messages to noLocal advisory 
consumers
            //so we need to remove this property too.
             
message.removeProperty(MessageUtil.CONNECTION_ID_PROPERTY_NAME);{code}

The assumption is wrong because internal sessions are also used for handling 
the XA-Transactions. The attached patch fixes the issue for me. [~jbertram] 
would it be possible to include it into the next release? And since it's a 
bugfix into a minor release too? 
[^0001-ARTEMIS-4095-fix-delivering-message-size-accounting.patch]

> OpenWire clients are unable to consume from mutlicast queue after 2nd paging
> ----------------------------------------------------------------------------
>
>                 Key: ARTEMIS-4095
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4095
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: OpenWire
>    Affects Versions: 2.26.0, 2.27.0, 2.27.1, 2.28.0, 2.29.0
>         Environment: Artemis, deployed through the official docker image in 
> version {{2.26.0}} in an OpenShift cluster
>            Reporter: Marco Bungart
>            Priority: Major
>         Attachments: 
> 0001-ARTEMIS-4095-fix-delivering-message-size-accounting.patch, 
> artemis-Xmx1G.png, artemis-Xmx2G.png, graph1.png, graph2.png, 
> jmeter-orders-6500-localhost.jmx, jmsconsumer-1.0-SNAPSHOT.jar
>
>
> I observed that after artemis went into paging for the 2nd time, OpenWire 
> clients were not able to read messages from their corresponding addresses. 
> Restarting the applications connected as clients does not fix the issue. 
> Restarting artemis, however, does fix the issue.
> Both images attached show the messages of two queues. 
> - The upper (orange) line in the 1st graph shows count of messages in a queue 
> to which core clients are connected. 
> - The lower (blue) line in the 1stg raph shows count of messages in a queue 
> to which OpenWire clients are connected.
> - in the 2nd graph, the upper (violet) line shows count of messages in a 
> queue to which core clients are connected. 
> - in the 2nd graph, the lower (green) line shows count of messages in a queue 
> to which OpenWire clients are connected.
> I have a heap dump that we could share, showing the accumulated objects. the 
> dump is about 90 MB in size If this would be helpful to have, please let me 
> know.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to