Gordon Sim created PROTON-925:
---------------------------------
Summary: proton-c seems to treat unspecified channel-max as
implying 0
Key: PROTON-925
URL: https://issues.apache.org/jira/browse/PROTON-925
Project: Qpid Proton
Issue Type: Bug
Components: proton-c
Affects Versions: 0.10
Reporter: Gordon Sim
Assignee: michael goulish
Priority: Blocker
Fix For: 0.10
If max-channels is not specified in the open, it appears the latest proton-c
treats that as implying the maximum is 0 though the spec states the default is
65535.
This breaks compatibility with previous proton releases. E.g. the following is
the interaction between a sender using the latest 0.10 and a receiver using
proton 0.9.
{noformat}
[0x151c710]: <- AMQP
[0x151c710]:0 <- @open(16)
[container-id="65A6602D-5D24-4D39-9C6F-7403D98F5E15", hostname="localhost",
channel-max=32767]
[0x151c710]:0 <- @begin(17) [next-outgoing-id=0, incoming-window=2147483647,
outgoing-window=1]
[0x151c710]:1 <- @begin(17) [next-outgoing-id=0, incoming-window=2147483647,
outgoing-window=1]
[0x151c710]:2 <- @begin(17) [next-outgoing-id=0, incoming-window=2147483647,
outgoing-window=1]
[0x151c710]:0 <- @attach(18) [name="sender-xxx", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="queue_a",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="queue_a",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:1 <- @attach(18) [name="sender-xxx", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="queue_b",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="queue_b",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:2 <- @attach(18) [name="sender-xxx", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="queue_c",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="queue_c",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]: -> AMQP
[0x151c710]:0 -> @open(16) [container-id="abab56b0-c25e-427b-9f4f-d63da48d1973"]
[0x151c710]:0 -> @begin(17) [remote-channel=0, next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=0]
[0x151c710]:1 -> @begin(17) [remote-channel=1, next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=0]
[0x151c710]:2 -> @begin(17) [remote-channel=2, next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=0]
[0x151c710]:0 -> @attach(18) [name="sender-xxx", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="queue_a",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="queue_a",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:1 -> @attach(18) [name="sender-xxx", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="queue_b",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="queue_b",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:2 -> @attach(18) [name="sender-xxx", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="queue_c",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="queue_c",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x151c710]:0 -> @flow(19) [next-incoming-id=0, incoming-window=2147483647,
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0,
link-credit=341, drain=false]
[0x151c710]:1 -> @flow(19) [next-incoming-id=0, incoming-window=2147483647,
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0,
link-credit=341, drain=false]
[0x151c710]:2 -> @flow(19) [next-incoming-id=0, incoming-window=2147483647,
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0,
link-credit=341, drain=false]
[0x151c710]:0 <- @close(24) [error=@error(29)
[condition=:"amqp:connection:framing-error", description="remote channel 1 is
above negotiated channel_max 0."]]
[0x151c710]: <- EOS
[0x151c710]:0 -> @close(24) []
[0x151c710]: -> EOS
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)