You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Pete Fawcett (Jira)" <ji...@apache.org> on 2022/05/17 08:53:00 UTC

[jira] [Resolved] (QPID-8569) Illegal selector results in undeletable queue

     [ https://issues.apache.org/jira/browse/QPID-8569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pete Fawcett resolved QPID-8569.
--------------------------------
    Fix Version/s: qpid-cpp-1.40.0
       Resolution: Fixed

> Illegal selector results in undeletable queue
> ---------------------------------------------
>
>                 Key: QPID-8569
>                 URL: https://issues.apache.org/jira/browse/QPID-8569
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: qpid-cpp-1.39.0
>            Reporter: Pete Fawcett
>            Priority: Major
>             Fix For: qpid-cpp-1.40.0
>
>
> Using AMQP 1.0 and creating a receiver, with an exchange as a source, and specifying a selector.
> If a valid selector is specified then, as expected, a queue is created.  The queue name and properties can be seen using {{qpid-stat}} or similar.  When the receiver is closed the queue disappears.
> If an invalid selector is specified then, again as expected, an error is returned to the client.
> The problem is that it appears that a queue has been created. A new queue can be seen using {{qpid-stat}} and, even though is shows it to be "auto-delete" it has not been deleted.
> Furthermore, trying to delete the queue using {{qpid-config}} returns a {{"not-found: Delete failed. No such queue: ..."}} error.
> I don't think all invalid selectors produce this situation, and I think that there is some variation depending on the client being used - which perhaps suggests some validation is being done at the client end.  However, there are certain invalid selectors that produce this error in both Python and C++ client bindings,
> Examples of invalid selector that produce errors are using an invalid operator:
> {{"header=='value'"}} which produces an {{"Illegal selector: '=': expected literal or identifier"}}
> or an invalid characters:
> {{"\header='value'"}} which produces an {{"Found illegal character"}}
> both the above result in the creation of an undeletable queue
> (I realise that "\header" isn't a valid value. I came across this error when trying to add double-quotes around the property name and got the wrong number of backslashes)
> A minimal way to reproduce these errors is to use the {{selected_recv.cpp}} example program in qpid-proton and change the filter string in [line 65|https://github.com/apache/qpid-proton/blob/main/cpp/examples/selected_recv.cpp#L65|]



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org