Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-925

proton-c seems to treat unspecified channel-max as implying 0

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: proton-0.10
    • Fix Version/s: proton-0.10
    • Component/s: proton-c
    • Labels:
      None

      Description

      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.

      [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
      

        Attachments

          Activity

            People

            • Assignee:
              mgoulish Michael Goulish
              Reporter:
              gsim Gordon Sim
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: