Thanks, wasn't aware of PN_TRACE_FRM, here's some output from connecting to
Azure and attempting to open a receiver then sender with that tracing
enabled:

Address: https://TWDIoTHub.azure-devices.net:5671
[0x6dd470]:  -> AMQP

on_start
[0x6dd470]:0 -> @open(16)
[container-id="77e8331f-ca64-4b22-8200-311024ede12d", channel-max=32767]

[0x6dd470]:  <- AMQP
[0x6dd470]:0 <- @open(16)
[container-id="DeviceGateway_5245347c74864eca98e80fc05547102b",
hostname="10.0.4.43", max-frame-size=65536, channel-max=8191,
idle-time-out=240000]

on_connection_open
[0x6dd470]:0 -> @begin(17) [next-outgoing-id=0, incoming-window=2147483647,
outgoing-window=2147483647]
[0x6dd470]:0 -> @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/1",
handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0,
source=@source(40) [address="$cbs", durable=0, timeout=0, dynamic=false],
target=@target(41) [durable=0, timeout=0, dynamic=false],
initial-delivery-count=0]
[0x6dd470]:0 -> @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/2",
handle=1, role=false, snd-settle-mode=2, rcv-settle-mode=0,
source=@source(40) [durable=0, timeout=0, dynamic=false], target=@target(41)
[address="$cbs", durable=0, timeout=0, dynamic=false],
initial-delivery-count=0]
[0x6dd470]:0 -> @flow(19) [incoming-window=2147483647, next-outgoing-id=0,
outgoing-window=2147483647, handle=0, delivery-count=0, link-credit=10,
drain=false]
[0x6dd470]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1,
incoming-window=5000, outgoing-window=5000, handle-max=262143]

on_session_open
[0x6dd470]:0 <- @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/1",
handle=0, role=false, snd-settle-mode=2, rcv-settle-mode=0,
initial-delivery-count=0, max-message-size=1048576]
[0x6dd470]:0 <- @detach(22) [handle=0, closed=true, error=@error(29)
[condition=:"amqp:internal-error", description="Object reference not set to
an instance of an object.", info={:exception="System.NullReferenceException:
Object reference not set to an instance of an object.\x0d\x0a\x0d\x0aServer
stack trace: \x0d\x0a   at
Microsoft.Azure.Devices.Gateway.Cloud.Common.Amqp.AmqpExtensionMethods.GetIotHubName(AmqpConnection
connection) in
D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Gateway.Cloud.Common\Amqp\AmqpExtensionMethods.cs:line
17\x0d\x0a   at
Microsoft.Azure.Devices.Gateway.Runtime.Amqp.AmqpGatewayProtocolHead.<OpenLinkAsync>d__83.MoveNext()
in
D:\jenkins\workspace\Build\gateway\runtime\Amqp\AmqpGatewayProtocolHead.cs:line
624\x0d\x0a\x0d\x0aException rethrown at [0]: \x0d\x0a   at
Microsoft.Azure.Devices.Common.Cloud.ExceptionDispatcher.Throw(Exception
exception) in
D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\ExceptionDispatcher.cs:line
14\x0d\x0a   at
Microsoft.Azure.Devices.Common.Cloud.TaskHelpers.EndAsyncResult(IAsyncResult
asyncResult) in
D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\TaskHelpers.cs:line
310\x0d\x0a   at
Microsoft.Azure.Amqp.AmqpLink.OnProviderLinkOpened(IAsyncResult result)"}]]
[0x6dd470]:0 <- @attach(18) [name="fbad141a-325e-4751-b2fe-3524960cff1e/2",
handle=1, role=true, snd-settle-mode=2, rcv-settle-mode=0,
max-message-size=1048576]
[0x6dd470]:0 <- @detach(22) [handle=1, closed=true, error=@error(29)
[condition=:"amqp:internal-error", description="Object reference not set to
an instance of an object.", info={:exception="System.NullReferenceException:
Object reference not set to an instance of an object.\x0d\x0a\x0d\x0aServer
stack trace: \x0d\x0a   at
Microsoft.Azure.Devices.Gateway.Cloud.Common.Amqp.AmqpExtensionMethods.GetIotHubName(AmqpConnection
connection) in
D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Gateway.Cloud.Common\Amqp\AmqpExtensionMethods.cs:line
17\x0d\x0a   at
Microsoft.Azure.Devices.Gateway.Runtime.Amqp.AmqpGatewayProtocolHead.<OpenLinkAsync>d__83.MoveNext()
in
D:\jenkins\workspace\Build\gateway\runtime\Amqp\AmqpGatewayProtocolHead.cs:line
624\x0d\x0a\x0d\x0aException rethrown at [0]: \x0d\x0a   at
Microsoft.Azure.Devices.Common.Cloud.ExceptionDispatcher.Throw(Exception
exception) in
D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\ExceptionDispatcher.cs:line
14\x0d\x0a   at
Microsoft.Azure.Devices.Common.Cloud.TaskHelpers.EndAsyncResult(IAsyncResult
asyncResult) in
D:\jenkins\workspace\Build\common\Microsoft.Azure.Devices.Common\TaskHelpers.cs:line
310\x0d\x0a   at
Microsoft.Azure.Amqp.AmqpLink.OnProviderLinkOpened(IAsyncResult result)"}]]


Doesn't make a great deal of sense to me, but it does look as though the
error is indeed firmly inside Azure.

Please let me know if this makes any more sense to you.

You mention that service bus authenticates to the link - I think that Azure
is slightly different, although not certain. I was playing around with
service bus before Azure, and service bus takes a username/password in the
address. Whereas Azure firstly requires a TLS/SSL handshake in order to
connect at all, and then after that the authentication is achieved by
opening a sender on the endpoint '$cbs' and sending a message containing a
shared access signature and some specific fields in the properties. If this
succeeds, authentication is complete and a corresponding message is sent to
a receiver opened on the path '$cbs'. After this one can open senders and
receivers at device endpoints and communicate directly with devices.



--
View this message in context: 
http://qpid.2158936.n2.nabble.com/qpid-proton-0-12-2-connection-engine-and-ssl-tp7647090p7647865.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to