Red Hat Bugzilla – Bug 999505
[AMQP 1.0] qpidd's SASL support does not correctly deal with fully asynchronous interaction
Last modified: 2015-01-21 07:55:43 EST
Description of problem:
The SASL implementation in qpidd expects the peer to wait for a SASL-INIT before it sends the SASL_OUTCOME, which isn't necessarily the case.
Version-Release number of selected component (if applicable):
100%, but a little bit involved and requires components outside of product set.
Steps to Reproduce:
1. Start recv example from proton listening on a given port
2. have a qpidd instance connect to that, e.g:
2a: qpidt create domain other url=<host>:<port> sasl_mechanisms=ANONYMOUS (where <host> and <port> are as used in 1.)
2b: qpidt create outgoing domain=other source=blah target=amq.fanout
3. send message to amq.fanout
Alternatively use dispatch-router instead of recv in step 1, change outgoing to incoming in step 2b, and in step 3 send a message to dispacth-router with the to filed set to amq.fanout (-P x-amqp-to=amq.fanout for spout or qpid-send). In this case message should then be received by a drain on amq.fanout (established before the message is sent).
The link in 2 is not established and message is not received/
Link is established and message is received.
Though this does not affect product it would be nice for the productised version of the AMQP support to be more widely interoperable with newer component such as proton messenger and dispatch-router.
Fixed upstream: https://svn.apache.org/r1514465
Verified RHEL 6.5 32 and 64 bit
with packages from qpid-cpp-0.22-36
qpidt is no longer available, but the functionallity is build into qpid-config
reproducer commands using qpid-config are:
- start c++ broker on port 5672
- qpid-config add queue q
- recv amqp://0.0.0.0:5672/q
in another window
- qpid-config add domain other --argument url=0.0.0.0:5672 --sasl-mechanism=ANONYMOUS
- qpid-config add incoming link --argument domain=other --argument target=q --argument source=q
- spout --content "Passed" q
recv in original window should receive the message