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

[proton-j] validate local/remote channel-max is adhered to

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • proton-0.12.0
    • proton-j-future
    • proton-j
    • None

    Description

      The channel-max handling in proton-j is broken.

      Transport[Impl] defines get/setChannelMax methods, which allow controlling the value sent in the Open frame emmitted for the connection. It defaults to the maximum 65535.

      The ConnectionImpl object has a getMaxChannels method that returns a hard coded value of 65535, and it is this limit value that is used by TransportImpl when selecting local channel numbers for sending Begin frame for new sessions. As such, it pays no notice of the limit value it announced in its Open frame, which may have been lower if configured on the transport.

      The remote channel-max receiver from the peer isn't used at all other than for return via getRemoteChannelMax(). The above process will similarly pay it no attention to it when selecting channel numbers for new sessions and so may select a channel number above the remote peers limit [and perhaps also its own, again].

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              robbie Robbie Gemmell
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: