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]

Reply via email to