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

Rob Davies reassigned AMQ-1671:
-------------------------------

    Assignee: Rob Davies

> InactivityMonitor issue with regards to exceptions on a connection
> ------------------------------------------------------------------
>
>                 Key: AMQ-1671
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1671
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker, Connector, Transport
>    Affects Versions: 5.1.0, 5.2.0
>            Reporter: Kevin Yaussy
>            Assignee: Rob Davies
>         Attachments: InactivityMonitor.java
>
>
> I'm using the 4/16 5.2 SNAPSHOT code.
> I'm reporting a new issue here, but this may be related or same as: AMQ-1482, 
> and AMQ-1582.
> The issue is that if there is an exception on a connection, such as the 
> process goes away (could be an AMQBroker going away or a client process), the 
> InactivityMonitor is not properly reporting this.  If maxInactivityDuration 
> is set to 0, and the client process goes away, the AMQBroker never cleans up 
> anything for this client, and the client can never reconnect (it will get 
> InvalidClientID exceptions).  If maxInactivityDuration is non-zero, the 
> connection will eventually get cleaned up when the inactivity timer pops.
> The issue turns out to be this line of code in InactivityMonitor::onException
>         if (!failed.compareAndSet(false,true)) {
> This means that when the connection goes away, this call returns true, but 
> the if statement is negating that so the next two lines of code in 
> onException are never executed at this time.  Only later (if 
> maxInactivityDuration is non-zero) will this check result in true, such that 
> the next two lines in onException are called.
> I think that this is just an issue in misinterpreting what AtomicBoolean will 
> return for the compareAndSet method?  Assuming this to be the case, I changed 
> this line to take out the "!".  Now everything works exactly as it should.
> I've attached the changed source.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to