[
https://issues.apache.org/activemq/browse/AMQ-1511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rob Davies reassigned AMQ-1511:
-------------------------------
Assignee: Rob Davies
> Slave starts connectors before master fails
> -------------------------------------------
>
> Key: AMQ-1511
> URL: https://issues.apache.org/activemq/browse/AMQ-1511
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 4.1.1
> Reporter: Howard Orner
> Assignee: Rob Davies
>
> A broker configured as a slave starts its connectors before the the master
> fails. This is bad because a) The documentation states that this is not the
> case. b) it shouldn't be the case because you don't want clients to be able
> to connect to the slave until it takes over as master.
> In looking at source, it would appear that the MasterConnector of
> BrokerService is not started until after all the connections are started in
> startAllConnection(). Unfortunately, to determine if connections should be
> started, isSlave() is called which relies on the MasterConnector.start()
> method being called.
> The MasterConnector service start() method needs to be called first before
> isSlave will work.
> See broken code snippet from BrokerService below:
> protected void startAllConnectors() throws Exception{
> if (!isSlave()){ // OOPS!!! isSlave asks the MasterConnector if the
> master is active, but can't until its started
> ...
> if (services != null) {
> for (int i = 0; i < services.length; i++) {
> Service service = services[i]; //OOPS, MasterConnector
> is in this list and the surrounding if relies on it to be started
> configureService(service);
> service.start(); //OOPS!!!! this should have been
> called for isSlave() to return the right answer.
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.