You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2019/10/28 10:56:00 UTC

[jira] [Commented] (ARTEMIS-2531) FederatedQueue has invalid filter string leading to an infinite consumer loop

    [ https://issues.apache.org/jira/browse/ARTEMIS-2531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16960925#comment-16960925 ] 

ASF subversion and git services commented on ARTEMIS-2531:
----------------------------------------------------------

Commit ad0581bf76043322934290d489f3f4489ac2536b in activemq-artemis's branch refs/heads/master from Christopher L. Shannon (cshannon)
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=ad0581b ]

ARTEMIS-2531: Fix filter in FederatedQueue to prevent infinite consumer
creation in a circular or bidrectional setup


> FederatedQueue has invalid filter string leading to an infinite consumer loop
> -----------------------------------------------------------------------------
>
>                 Key: ARTEMIS-2531
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2531
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.10.1
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>            Priority: Major
>             Fix For: 2.11.0
>
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> FederatedQueue by default is supposed to set a metadataFilter to will exclude reacting to federated consumers so a loop isn't created. Unfortunately the filter does not work because there is a hyphen in the key name so it gets ignored.  The name of the key used is {{federation-name}} . The key property needs to be prefixed with "hyphenated_props:" in the expression for the filter to work. Currently an infinite loop and consumers will be rapidly created until crashing the broker unless the filter is fixed (if using by directional federated queues).  The other option is to change key name but this works too.
> The following documentation describes hyphens in filter expressions: [https://activemq.apache.org/components/artemis/documentation/latest/filter-expressions.html]
> From the docs:
> {panel}
> The JMS spec also states that property identifiers (and therefore the identifiers which are valid for use in a filter expression) are an, "unlimited-length sequence of letters and digits, the first of which must be a letter. A letter is any character for which the method Character.isJavaLetter returns true. This includes _ and $. A letter or digit is any character for which the method Character.isJavaLetterOrDigit returns true." *This constraint means that hyphens (i.e. -) cannot be used. However, this constraint can be overcome by using the hyphenated_props: prefix. For example, if a message had the foo-bar property set to 0 then the filter expression hyphenated_props:foo-bar = 0 would match it.*
> {panel}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)