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/04/15 15:03:25 UTC

[jira] [Commented] (AMQ-6256) ConcurentStoreAndDispatch can lead to inconsistent message states using VM Transport

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

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

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

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

Calling beforeMarshall on messages when they async stored before the
store task is run and before consumer dispatch to prevent two threads
from trying to mutate the message state at the same time.


> ConcurentStoreAndDispatch can lead to inconsistent message states using VM Transport
> ------------------------------------------------------------------------------------
>
>                 Key: AMQ-6256
>                 URL: https://issues.apache.org/jira/browse/AMQ-6256
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.13.2
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>
> When messages are added to a store asynchronously (when using concurrent store and dispatch) and then dispatched to a consumer at the same time, there is a race condition that can occur primarily with the VM Transport.  The issue is that it's possible that when the VM Transport is copying the message for dispatch, the async task can run at the same time to store the message.  It's possible that the copy on dispatch can occur during the same time the async store task is trying to marshall the data and properties which can lead to an inconsistent state of the message (ie null content).  This is the cause of the issue in AMQ-6218.
> The proper fix for this is to make sure the beforeMarshall method is called prior to the task running and prior to dispatch.



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