Dan Langford created ARTEMIS-1429:
-------------------------------------
Summary: Configuration Reload on slave broker.xml causes slave to
start/enable acceptors which disables backups
Key: ARTEMIS-1429
URL: https://issues.apache.org/jira/browse/ARTEMIS-1429
Project: ActiveMQ Artemis
Issue Type: Bug
Affects Versions: 2.3.0, 2.2.0, 2.1.0
Environment: Mac OSX, Java 1.8
Reporter: Dan Langford
NODE CONFIG
I am running in a simple Master / Slave cluster. Each node is configured such
that the cluster is defined with a static connector to the other. Start up
looks fine and the Slave stops accepting connections and backup is announced.
QUEUE CONFIG
Lets set up a scenario here. lets say that in the broker xml an address names
FOO (anycast to a queue called FOO) is defined. Security settings also allow
role MAVERICK to send and consume. Lets also say that after the system started
via management operations we created another address named BAR (anycast to
queue called BAR). We also at runtime added security settings to allow role
GOOSE to send/ and consume both FOO and BAR
*broker.xml *
address FOO
role MAVERICK send to FOO
*runtime management*
address BAR
role GOOSE send to BAR
role GOOSE send to FOO
FAILOVER & FAILBACK WORKING
so Master is "serving", if you will, FOO and BAR. GOOSE can send to both FOO
and BAR. If we turn off Master then Slave starts listening on the acceptors and
continues to serve FOO and BAR. The security settings also replicated so GOOSE
can still send to FOO and BAR. replication seems to be working fine. Start
Master back up and Master takes over and the Slave turns off its acceptors.
This is just as expected and it works great behind our F5/VIP which sees active
pool members based off of who is accepting requests to 5672.
PROBLEMS WITH CONFIGURATION RELOAD & BACKUPS
If I make any change at all to the slave broker.xml file the "configuration
reload" feature take effect and starts/enables the acceptors on the Slave. The
Slave is only "serving" any queues that are defined in the broker.xml so in
this case its only serving FOO. since our VIP now sees that another pool member
is active it starts routing traffic to the slave. the slave can only take FOO
traffic because we have auto-create of queues turned off. so BAR traffic that
happens to go to the slave is denied. also Replication now seem problematic as
the Slave is no longer backing up the Master and the messages now being sent to
FOO on the Slave are not being backed up by anybody.
In fact anything configured via management is no longer considered. GOOSE can
no longer send to FOO. MAVERICK still can.
QUESTIONS
Is this by design? is there a way to completely disable configuration reload
all together? Can configuration reload be configured to also take into account
address and security configuration that has happened via the management api? is
there a way to configure the configuration reload to consider the fact that it
is supposed to be part of a cluster?
i am completely open to this being a problem with my set up. i wanted to
quickly throw this out there if i need to come back and supply broker XML files
i can in a bit.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)