[ 
https://issues.apache.org/jira/browse/PROTON-1135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robbie Gemmell updated PROTON-1135:
-----------------------------------
    Description: 
Dispatch router (which uses Proton-c) currently sends pipelined SASL and OPEN 
frames by default when connecting out to other peers using the ANONYMOUS mech, 
as shown in the following trace - 
{code}
[0x7f41f80079c0]:  -> SASL
[0x7f41f80079c0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, 
initial-response=b"anonymous@localhost.localdomain"]
[0x7f41f80079c0]:  -> AMQP
[0x7f41f80079c0]:0 -> @open(16) [container-id="Qpid.Dispatch.Router.A", 
max-frame-size=65536, channel-max=32767, idle-time-out=8000, 
offered-capabilities=:"ANONYMOUS-RELAY", 
properties={:product="qpid-dispatch-router", :version="0.6.0"}]
[0x7f41f80079c0]:  <- SASL
[0x7f41f80079c0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=:ANONYMOUS]
[0x7f41f80079c0]:0 <- @sasl-outcome(68) [code=0]
[0x7f41f80079c0]:  <- AMQP
[0x7f41f80079c0]:0 <- @open(16) 
[container-id="ce103199-af03-4d37-bb35-24ad4e55653e", channel-max=32767, 
idle-time-out=8000, offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"], 
properties={:product="qpid-cpp", :version="0.35", :platform="Linux", 
:host="localhost.localdomain"}]
{code}

The AMQP 1.0 spec does not make it clear that this is supported (e.g. see 
diagram below) but in any case various components have shown difficulty with it 
(such as PROTON-1135 just raised, and QPID-6639 which has yet to be included in 
a release but permitted the above protocol trace log).
{code}
TCP Client         TCP Server
=========================================
AMQP%d3.1.0.0 --------->
                          <--------- AMQP%d3.1.0.0
:
:
<SASL negotiation>
:
:
AMQP%d0.1.0.0 --------->
(over SASL secured connection)
                            <--------- AMQP%d0.1.0.0
open --------->
                            <--------- open
{code}

Proton should by default stop enables sending pipelined OPEN frames for 
ANONYMOUS logins to aid compatibility with other components.

  was:
Dispatch router (which uses Proton-c) sends pipelined SASL and OPEN frames by 
default like shown in the following trace - 
{code}
[0x7f41f80079c0]:  -> SASL
[0x7f41f80079c0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, 
initial-response=b"anonymous@localhost.localdomain"]
[0x7f41f80079c0]:  -> AMQP
[0x7f41f80079c0]:0 -> @open(16) [container-id="Qpid.Dispatch.Router.A", 
max-frame-size=65536, channel-max=32767, idle-time-out=8000, 
offered-capabilities=:"ANONYMOUS-RELAY", 
properties={:product="qpid-dispatch-router", :version="0.6.0"}]
[0x7f41f80079c0]:  <- SASL
[0x7f41f80079c0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=:ANONYMOUS]
[0x7f41f80079c0]:0 <- @sasl-outcome(68) [code=0]
[0x7f41f80079c0]:  <- AMQP
[0x7f41f80079c0]:0 <- @open(16) 
[container-id="ce103199-af03-4d37-bb35-24ad4e55653e", channel-max=32767, 
idle-time-out=8000, offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"], 
properties={:product="qpid-cpp", :version="0.35", :platform="Linux", 
:host="localhost.localdomain"}]
{code}
As per the AMQP 1.0 spec - the OPEN frame is sent after the SASL exchange is 
complete as shown below - 
{code}
TCP Client         TCP Server
=========================================
AMQP%d3.1.0.0 --------->
                          <--------- AMQP%d3.1.0.0
:
:
<SASL negotiation>
:
:
AMQP%d0.1.0.0 --------->
(over SASL secured connection)
                            <--------- AMQP%d0.1.0.0
open --------->
                            <--------- open
{code}
Proton should by default turn off the flag that enables sending pipelined OPEN 
frames.

        Summary: [proton-c] dont pipeline SASL and OPEN frames for ANONYMOUS 
logins by default  (was: By default the flag that allows AMQP SASL and OPEN 
frames to be pipelined must be turned off )

Tweaked description for clarity.

> [proton-c] dont pipeline SASL and OPEN frames for ANONYMOUS logins by default
> -----------------------------------------------------------------------------
>
>                 Key: PROTON-1135
>                 URL: https://issues.apache.org/jira/browse/PROTON-1135
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.12.0
>            Reporter: Ganesh Murthy
>
> Dispatch router (which uses Proton-c) currently sends pipelined SASL and OPEN 
> frames by default when connecting out to other peers using the ANONYMOUS 
> mech, as shown in the following trace - 
> {code}
> [0x7f41f80079c0]:  -> SASL
> [0x7f41f80079c0]:0 -> @sasl-init(65) [mechanism=:ANONYMOUS, 
> initial-response=b"anonymous@localhost.localdomain"]
> [0x7f41f80079c0]:  -> AMQP
> [0x7f41f80079c0]:0 -> @open(16) [container-id="Qpid.Dispatch.Router.A", 
> max-frame-size=65536, channel-max=32767, idle-time-out=8000, 
> offered-capabilities=:"ANONYMOUS-RELAY", 
> properties={:product="qpid-dispatch-router", :version="0.6.0"}]
> [0x7f41f80079c0]:  <- SASL
> [0x7f41f80079c0]:0 <- @sasl-mechanisms(64) [sasl-server-mechanisms=:ANONYMOUS]
> [0x7f41f80079c0]:0 <- @sasl-outcome(68) [code=0]
> [0x7f41f80079c0]:  <- AMQP
> [0x7f41f80079c0]:0 <- @open(16) 
> [container-id="ce103199-af03-4d37-bb35-24ad4e55653e", channel-max=32767, 
> idle-time-out=8000, offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"], 
> properties={:product="qpid-cpp", :version="0.35", :platform="Linux", 
> :host="localhost.localdomain"}]
> {code}
> The AMQP 1.0 spec does not make it clear that this is supported (e.g. see 
> diagram below) but in any case various components have shown difficulty with 
> it (such as PROTON-1135 just raised, and QPID-6639 which has yet to be 
> included in a release but permitted the above protocol trace log).
> {code}
> TCP Client         TCP Server
> =========================================
> AMQP%d3.1.0.0 --------->
>                           <--------- AMQP%d3.1.0.0
> :
> :
> <SASL negotiation>
> :
> :
> AMQP%d0.1.0.0 --------->
> (over SASL secured connection)
>                             <--------- AMQP%d0.1.0.0
> open --------->
>                             <--------- open
> {code}
> Proton should by default stop enables sending pipelined OPEN frames for 
> ANONYMOUS logins to aid compatibility with other components.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to