Keith Wall created QPID-7181:
--------------------------------
Summary: [AMQP 1.0] Selector parsing error causes Java Broker to
shutdown
Key: QPID-7181
URL: https://issues.apache.org/jira/browse/QPID-7181
Project: Qpid
Issue Type: Bug
Components: Java Broker
Environment: Fedora release 20 (Heisenbug)
cpp/proton - trunk
Reporter: Keith Wall
Running the Python broker_1_0 tests
{{qpid_tests.broker_1_0.selector.SelectorTests.test_special_fields}} exposes an
unexpected Broker shutdown if a JMS selector is received that cannot be parsed.
The selector is {{amqp.message_id = 'c'}}, so according to the JMS rules for
formation of identifiers, the identifier is incorrect. I think the Broker
should be closing the connection with an appropriate error.
{code}
python ~/tmp/py/bin/qpid-python-test -b amqp://guest/[email protected]:5672 -x
results/TEST-python.xml -m qpid_tests.broker_1_0
qpid_tests.broker_1_0.selector.SelectorTests.test_special_fields
{code}
{noformat}
2016-04-03 07:59:47,561 DEBUG [IO-/10.211.55.15:44574] (FRM) -
SEND[/10.211.55.15:44574|0] :
Flow{nextIncomingId=0,incomingWindow=2048,nextOutgoingId=0,outgoingWindow=2048,handle=0,deliveryCount=0,linkCredit=20000,echo=false}
2016-04-03 07:59:47,566 DEBUG [IO-/10.211.55.15:44574] (FRM) -
RECV[/10.211.55.15:44574|0] :
Attach{name=9aefbd74-36f7-4656-b9c4-668ccd44b043_1d4d16fb-7dac-44bf-bb54-aba687614eaf,handle=1,role=receiver,sndSettleMode=mixed,rcvSettleMode=first,source=Source{address=9aefbd74-36f7-4656-b9c4-668ccd44b043,durable=none,timeout=0,dynamic=false,filter={selector=JMSSelector{amqp.message_id
=
'c'}}},target=Target{address=9aefbd74-36f7-4656-b9c4-668ccd44b043,durable=none,timeout=0,dynamic=false},initialDeliveryCount=0}
2016-04-03 07:59:47,590 ERROR [IO-/10.211.55.15:44574] (o.a.q.s.Main) -
Uncaught exception, shutting down.
org.apache.qpid.filter.selector.TokenMgrError: Lexical error at line 1, column
6. Encountered: "m" (109), after : "."
at
org.apache.qpid.filter.selector.SelectorParserTokenManager.getNextToken(SelectorParserTokenManager.java:1036)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.jj_ntk(SelectorParser.java:1211)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.multExpr(SelectorParser.java:370)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.addExpression(SelectorParser.java:336)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.comparisonExpression(SelectorParser.java:188)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.equalityExpression(SelectorParser.java:133)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.andExpression(SelectorParser.java:112)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.orExpression(SelectorParser.java:91)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.JmsSelector(SelectorParser.java:83)
~[classes/:na]
at
org.apache.qpid.filter.selector.SelectorParser.parse(SelectorParser.java:61)
~[classes/:na]
at
org.apache.qpid.server.filter.JMSSelectorFilter.<init>(JMSSelectorFilter.java:50)
~[classes/:na]
at
org.apache.qpid.server.protocol.v1_0.SendingLink_1_0.<init>(SendingLink_1_0.java:154)
~[classes/:na]
at
org.apache.qpid.server.protocol.v1_0.Session_1_0.remoteLinkCreation(Session_1_0.java:224)
~[classes/:na]
at
org.apache.qpid.server.protocol.v1_0.Connection_1_0$2$1.run(Connection_1_0.java:291)
~[classes/:na]
at java.security.AccessController.doPrivileged(Native Method)
~[na:1.8.0_45]
at
org.apache.qpid.server.protocol.v1_0.Connection_1_0$2.remoteLinkCreation(Connection_1_0.java:286)
~[classes/:na]
at
org.apache.qpid.amqp_1_0.transport.SessionEndpoint.receiveAttach(SessionEndpoint.java:309)
~[classes/:na]
at
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveAttach(ConnectionEndpoint.java:633)
~[classes/:na]
at
org.apache.qpid.amqp_1_0.type.transport.Attach.invoke(Attach.java:352)
~[classes/:na]
at
org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:823)
~[classes/:na]
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]