activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergiy Barlabanov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-5136) MemoryUsage is not decremented on a JMS topic when rolling back a transacted session
Date Mon, 28 Apr 2014 11:42:17 GMT

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

Sergiy Barlabanov commented on AMQ-5136:
----------------------------------------

Can anybody comment this issue? Any ideas when it will be fixed? The fix would be quite easy:
just add a correct rollback listener.

> 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
>         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)

Mime
View raw message