[
https://issues.apache.org/jira/browse/ARTEMIS-3021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17268587#comment-17268587
]
Francesco Nigro commented on ARTEMIS-3021:
------------------------------------------
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)