You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Francesco Nigro (Jira)" <ji...@apache.org> on 2021/01/20 14:10:00 UTC

[jira] [Comment Edited] (ARTEMIS-3021) OOM due to wrong CORE clustered message memory estimation

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

Francesco Nigro edited comment on ARTEMIS-3021 at 1/20/21, 2:09 PM:
--------------------------------------------------------------------

After an additional investigation, it seems that the wrong core estimation only happen if the message is being modified by adding routing information to it (with RemoteQueueBinding::addRouteContextToMessage) ie is clustered.
Right after the message is going to be routed to the queue (getting a wrong evaluation of its memory footprint, because encoding is lazy) and right after is being encoded, if durable, getting an enlarged buffer, not accounted on the original memory estimation.


was (Author: nigrofranz):
After an additional investigation, it seems that the wrong core estimation only happen if the message is being modified by adding routing information to it (with RemoteQueueBinding::addRouteContextToMessage).
Right after the message is going to be routed to the queue (getting a wrong evaluation of its memory footprint, because encoding is lazy) and right after is being encoded, if durable, getting an enlarged buffer, not accounted on the original memory estimation.

> OOM due to wrong CORE clustered message memory estimation
> ---------------------------------------------------------
>
>                 Key: ARTEMIS-3021
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3021
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>            Reporter: Francesco Nigro
>            Assignee: Francesco Nigro
>            Priority: Major
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> Durable CORE messages with clustering can get their internal buffer enlarged by encodeHeadersAndProperties while being persisted on the journal, but the address size memory estimation using the estimated memory of a message is performed before that, making it less precise. 
> This bad timing estimation, together with Netty ByteBuf auto-sizing mechanism can cause the broker to underestimate the message footprint, causing it to go OOM. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)