You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (JIRA)" <ji...@apache.org> on 2012/07/22 13:06:34 UTC
[jira] [Comment Edited] (QPID-4162)
AlternateExchangeTests.test_queue_autodelete occasionally fails with
ProtocolViolationException on Java Broker
[ https://issues.apache.org/jira/browse/QPID-4162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13420145#comment-13420145 ]
Keith Wall edited comment on QPID-4162 at 7/22/12 11:05 AM:
------------------------------------------------------------
As the client should be allowed to session.close() whenever it likes (regardless of what controls are already on the wire), I see this as a Java Broker issue. It does not respect the AMPQ 0.10 spec:
{quote}
The transport MUST be attached in order to use any control other than "attach", "attached", "detach", or "detached". A peer receiving any other control on a detached transport MUST discard it and send a session.detached with the "not-attached" reason code.
{quote}
The _Broker_ gets its current behaviour (throw the PVE) from QPID-2176 (I'm not certain if this was intentional as this Jira was resolving a client defect. I think we should change to Broker to conform to the spec i.e. return a SessionDetached control with SessionDetachCode.NOT_ATTACHED reason. The Python implementation connection.py line 101 already has the appropriate guards in place to safely ignore the 'extra' SessionDetached control.
I tested this change locally, and it appears to resolve the issue.
Any thoughts?
was (Author: k-wall):
As the client should be allowed to session.close() whenever it likes (regardless of what commands are already on the wire), I see this as a Java Broker issue. It does not respect the AMPQ 0.10 spec:
{quote}
The transport MUST be attached in order to use any control other than "attach", "attached", "detach", or "detached". A peer receiving any other control on a detached transport MUST discard it and send a session.detached with the "not-attached" reason code.
{quote}
The _Broker_ gets its current behaviour (throw the PVE) from QPID-2176 (I'm not certain if this was intentional as this Jira was resolving a client defect. I think we should change to Broker to conform to the spec i.e. return a SessionDetached control with SessionDetachCode.NOT_ATTACHED reason. The Python implementation connection.py line 101 already has the appropriate guards in place to safely ignore the 'extra' SessionDetached control.
I tested this change locally, and it appears to resolve the issue.
Any thoughts?
> AlternateExchangeTests.test_queue_autodelete occasionally fails with ProtocolViolationException on Java Broker
> --------------------------------------------------------------------------------------------------------------
>
> Key: QPID-4162
> URL: https://issues.apache.org/jira/browse/QPID-4162
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker, Python Test Suite
> Affects Versions: 0.16, 0.17
> Environment: Ubuntu (Apache CI slaves) and Mac OS X 10.6.8
> Reporter: Keith Wall
> Assignee: Keith Wall
>
> As exemplified by builds [build 279|https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Python-Java-Test/279/] and [build 284|https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Python-Java-Test/284/], test qpid_tests.broker_0_10.alternate_exchange.AlternateExchangeTests.test_queue_autodelete is occasionally seen to fail against only the Java Broker.
> {noformat}
> Error during test: Traceback (most recent call last):
> File "/home/jenkins/jenkins-slave/workspace/Qpid-Python-Java-Test/trunk/qpid/python/qpid-python-test", line 340, in run
> phase()
> File "/home/jenkins/jenkins-slave/workspace/Qpid-Python-Java-Test/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/alternate_exchange.py", line 231, in test_queue_autodelete
> self.assertEmpty(dlq)
> File "/home/jenkins/jenkins-slave/workspace/Qpid-Python-Java-Test/trunk/qpid/tests/src/py/qpid_tests/broker_0_10/alternate_exchange.py", line 351, in assertEmpty
> msg = queue.get(timeout=1)
> File "/home/jenkins/jenkins-slave/workspace/Qpid-Python-Java-Test/trunk/qpid/python/qpid/queue.py", line 55, in get
> raise Closed(self.error)
> Closed: (None, 'connection aborted')
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org