[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