You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/02/18 22:23:00 UTC

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

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

ASF GitHub Bot logged work on ARTEMIS-3021:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 18/Feb/21 22:22
            Start Date: 18/Feb/21 22:22
    Worklog Time Spent: 10m 
      Work Description: michaelandrepearce commented on a change in pull request #3370:
URL: https://github.com/apache/activemq-artemis/pull/3370#discussion_r578785892



##########
File path: artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java
##########
@@ -426,7 +426,6 @@ protected CoreMessage(CoreMessage other, TypedProperties copyProperties) {
       // with getEncodedBuffer(), otherwise can introduce race condition when delivering concurrently to
       // many subscriptions and bridging to other nodes in a cluster
       synchronized (other) {
-         this.body = other.body;

Review comment:
       I might be a plank, but surely this avoids using up memory as the body object is copied by reference here, rather than later needing to deserialise again and creating a new object in memory.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 554501)
    Time Spent: 3h 50m  (was: 3h 40m)

> 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: 3h 50m
>  Remaining Estimate: 0h
>
> This is affecting clustered Core messages (persistent or not).
> The process that cause the wrong estimation is:
>  # add route information to the message
>  # get memory estimation for paging (ie address size estimation) without accounting the new route information
>  # get message persist size for durable append on journal/to update queue statistics, triggering 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 (including the added route information)
>  * save an excessive buffer growth caused by the default Netty's ByteBuf::ensureWritable strategy



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