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 16:12:00 UTC

[jira] [Issue Comment Deleted] (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:all-tabpanel ]

Francesco Nigro updated ARTEMIS-3021:
-------------------------------------
    Comment: was deleted

(was: 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.
The process that cause the wrong estimation is:
# add route information to the message
# get memory estimation for paging without accounting the new route information
# getting persistent size for durable append on journal
# re-encoding due to modified routing info with high chance to get a much larger buffer)

> 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
>
>  
>  
> This is affecting clustered Core messages.
> The process that cause the wrong estimation is:
>  # add route information to the message
>  # get memory estimation for paging without accounting the new route information
>  # getting persist size for durable append on journal or to update queue statistics trigger a re-encoding
>  # re-encoding can enlarge the message buffer to be the next power of 2 available capacity 
> The 2 fixes are:
>  * getting a correct memory estimation of the message
>  * save the buffer on encoding to grow using the default Netty ByteBuf::ensureCapacity grow strategy



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