[
https://issues.apache.org/jira/browse/ARTEMIS-5252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram resolved ARTEMIS-5252.
-------------------------------------
Resolution: Not A Bug
> Divert with incorrect filter causes startup failure
> ---------------------------------------------------
>
> Key: ARTEMIS-5252
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5252
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.39.0
> Environment: ActiveMQ Artemis 2.38,0 - 2.39.0 Linux / Windows
> Reporter: Aleksandr Milovidov
> Assignee: Justin Bertram
> Priority: Minor
> Attachments: artemis_divert_with_incorrect_filter.log
>
>
> When broker.xml contains a divert with an incorrect filter, ActiveMQ Artemis
> fails to start.
> Expected behavior:
> If the divert was created before, keep previous divert settings and start.
> If the divert was absent, skip creating the divert and start.
> For example, if invalid filter is specified in the queue configuration, it
> does not lead to a non-operating state of the server. A queue with an
> incorrect filter is not deployed or not changed.
> Also when we have a primary-backup cluster with replication, if someone
> accidentally deployed incorrect divert configuration to both servers, it
> leads to unavailability of the entire cluster after restart of the primary
> server. Backup broker tries to become a live server but cannot start because
> of the incorrect configuration.
> Steps to reproduce:
> 1. Create a broker instance. Add to broker.xml:
> {code:java}
> <addresses>
> <address name="test-source">
> <anycast/>
> </address>
> <address name="test-destination">
> <anycast>
> <queue name="test-destination"/>
> </anycast>
> </address>
> </addresses>
> <diverts>
> <divert name="divert-test">
> <address>test-source</address>
> <forwarding-address>test-destination</forwarding-address>
> <exclusive>false</exclusive>
> <filter string="key='value'"/>
> </divert>
> </diverts>
> {code}
> 2. Change filter string to something incorrect which does not break xml
> syntax. For example {{"(key='value'"}}
> When reloading configuration, broker logs an error and continues to work:
> {code:java}
> ERROR [org.apache.activemq.artemis.core.server] AMQ224006: Invalid filter:
> (key='value'
> ERROR [org.apache.activemq.artemis.core.server] AMQ224069: Change detected in
> broker configuration file, but reload failed
> org.apache.activemq.artemis.api.core.ActiveMQInvalidFilterExpressionException:
> AMQ229020: Invalid filter: (key='value'{code}
> When restarting the broker, it logs:
> {code:java}
> ERROR [org.apache.activemq.artemis.core.server] AMQ224006: Invalid filter:
> (key='value'
> ERROR [org.apache.activemq.artemis.core.server] AMQ224000: Failure in
> initialisation
> {code}
> Full logs are attached: [^artemis_divert_with_incorrect_filter.log]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact