activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (AMQ-5605) High CPU load when using failover transport in network connector
Date Wed, 28 Oct 2015 13:44:27 GMT


ASF subversion and git services commented on AMQ-5605:

Commit 756fa656b37df24bfe41679f8db238c021fe5f8b in activemq's branch refs/heads/activemq-5.11.x
from [~tabish121]
[;h=756fa65 ]

Attempt to resolve high CPU usage after error by ensuring that the
transport is disposed along with the fire of the local error. 

> High CPU load when using failover transport in network connector
> ----------------------------------------------------------------
>                 Key: AMQ-5605
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.11.0, 5.11.1
>         Environment: Ubuntu 14.04, SuSE Enterprise 11.3
>            Reporter: Lars Neumann
>              Labels: failover
>             Fix For: 5.12.0
> I've got a configuration with two master/slave setups consisting of 3 ActiveMQ instances
each. They are deployed on three servers, with one ActiveMQ instance from each master/slave
setup on every server. They are using the leveldb and zookeeper. Everything works fine.
> Now I've got the strange behaviour that when I add a network connector to each ActiveMQ
instance like this:
> {code}
> networkConnector name="toMasterSlave02" dynamicOnly="true" uri="masterslave:(tcp://host1:61617,tcp://host2:61617,tcp://host3:61617)"
> {code}
> When you now restart the master of the master/slave setup that is targeted by the above
network connector the cpu load on the current master goes and stays up at 100%, i.e. it uses
one CPU per configured transportConnector.
> Now the explanation, mostly copied from
> {quote}
> When one of the brokers is restarted, the other broker uses ~400% CPU. The cause is the
FailoverTransport reconnectTask spinning, and nothing is stopping the task.
> Reverting this fix made for AMQ-5315, while it does reintroduce the NullPointerException,
does handle failover properly without spinning:
> The reason it works after reverting that change is the NullPointerException is caught,
-> serviceLocalException() -> ServiceSupport.dispose(getControllingService()); with
the fix made in AMQ-5315, the dispose() call is never made. 
> {quote}
> Sorry, but I've got no clue how to provide a unit test for this. Maybe someone else can

This message was sent by Atlassian JIRA

View raw message