activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tarek Hammoud (JIRA)" <>
Subject [jira] [Commented] (AMQ-5265) JMX destination entires fail due to race condition in MBeanBridgeDestination
Date Mon, 04 May 2015 19:44:06 GMT


Tarek Hammoud commented on AMQ-5265:


I do still see the problem in 5.11.1. The culprit is destinationObjectNameMap which is being
used for both inbound and outbound messages.  A destination that is put from the onInBoundMessage
gets trashed by the one put from the onOutBoundMessage. The cleanup code in the stop() method
will clean only one MBean instance leaving the other one dangling. 

My setup is as follows:

Two Networked Brokers (Full Duplex) (A and B). Two clients each publishing on the same exact
topic. Each client is connected to exactly one of the brokers. Kill Broker B. Restart Broker
B. On reconnect, you will see the error in Broker A. 

> JMX destination entires fail due to race condition in MBeanBridgeDestination
> ----------------------------------------------------------------------------
>                 Key: AMQ-5265
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.1, 5.10.0
>            Reporter: Jeff Genender
>            Assignee: Dejan Bosanac
>             Fix For: 5.10.1, 5.11.0
>         Attachments: AMQ-5265.patch
> JMX statistics on destinations creates a race condition in the MBeanBridgeDestination's
onInboundMessage, onOutboundMessage, and the purgeInactiveDestinationView task.  If the task
fires and removes the objectName while the onInboundMessage or onOutboundMessage fires, it
will spit out warnings of it already being created if multiple threads are running.  The fix
is to properly synchronize in the purgeInactiveDestinationView and also be sure it cleans
up itself in the destinationObjectNameMap.
> Patch is attached as is a git pull request (for whatever is easier)

This message was sent by Atlassian JIRA

View raw message