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 subversion and git services (JIRA)" <ji...@apache.org> on 2016/03/22 18:55:25 UTC

[jira] [Commented] (AMQ-6222) Message content can be cleared by mistake when isReduceMemoryFootprint is enabled

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

ASF subversion and git services commented on AMQ-6222:
------------------------------------------------------

Commit 75990ef14a092b629bf8d2127bc4786e51b31684 in activemq's branch refs/heads/master from [~cshannon]
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=75990ef ]

https://issues.apache.org/jira/browse/AMQ-6222

Moving clearedMarshalledState execution to the async listener on an
async add to the message store.  This is necessary to make sure this
logic doens't execute until after the message is marshalled for the
store.


> Message content can be cleared by mistake when isReduceMemoryFootprint is enabled
> ---------------------------------------------------------------------------------
>
>                 Key: AMQ-6222
>                 URL: https://issues.apache.org/jira/browse/AMQ-6222
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.13.2
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>
> In a Queue when isReduceMemoryFootprint is enabled the message state should be cleared after persisting to the store.  The idea is that once the data is marshalled into its byte content we can clear out the properties, text, etc to free up memory.
> The problem is that when concurrent dispatch is enabled, messages are added to the store asynchronously and queued up.  There is a race condition because it's possible for the state to be cleared before the store has a chance to process the message so that when it gets to it, it will be null.  This is most notable when using the VM transport as messages with null content will get dispatched.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)