[prev in list] [next in list] [prev in thread] [next in thread] 

List:       activemq-dev
Subject:    [jira] [Resolved] (AMQ-5136) MemoryUsage is not decremented on a JMS topic when rolling back a trans
From:       "Gary Tully (JIRA)" <jira () apache ! org>
Date:       2014-04-30 16:10:24
Message-ID: JIRA.12706626.1396618612717.207155.1398874224144 () arcas
[Download RAW message or body]


     [ https://issues.apache.org/jira/browse/AMQ-5136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel \
]

Gary Tully resolved AMQ-5136.
-----------------------------

    Resolution: Fixed

thanks for the nice test.
fix and test in http://git-wip-us.apache.org/repos/asf/activemq/commit/c5c14953

> MemoryUsage is not decremented on a JMS topic when rolling back a transacted \
>                 session
> ------------------------------------------------------------------------------------
>  
> Key: AMQ-5136
> URL: https://issues.apache.org/jira/browse/AMQ-5136
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.8.0, 5.9.0
> Reporter: Sergiy Barlabanov
> Assignee: Gary Tully
> Fix For: 5.10.0
> 
> Attachments: activemqbug.zip
> 
> 
> When sending a message to a topic using a transacted session, memory usage is not \
> decremented correctly when session.rollback is called. It is decremented on commit \
> but not on rollback. This has quite bad consequences since after some time \
> depending on the system memory usage settings and amount of rolled back messages, \
> the broker starts to reject messages saying that Usage Manager memory limit is \
> reached. The only solution is to restart the broker. I created a small Maven \
> project (see the attachment) with a unit test starting an embedded broker and two \
> test methods: one sending messages with session.commit and another with \
> session.rollback(). The last one fails to assert the memory usage. In the output \
> one can see quite a lot of error logs written by ActiveMQ. The problem is \
> reproducible with 5.8.0 and 5.9.0. The problem seems to be in \
> org.apache.activemq.broker.region.Topic#doMessageSend method where a transaction \
> synchronization is registered. In the transaction synchronization only afterCommit \
> is supplied, but no afterRollback. So there seems to be nobody calling \
> message.decrementReferenceCount().



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic