[
https://issues.apache.org/jira/browse/QPID-4162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org