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

Client becomes cpu bound in pn_buffer_rotate() on session flow control

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: proton-c-0.33.0, proton-c-0.35.0, proton-c-0.34.0
    • Fix Version/s: proton-c-0.36.0
    • Component/s: proton-c
    • Labels:
      None

      Description

      While testing various AMQP session size limitations on the Qpid dispatch router I was able to cause a proton-c client to pin the CPU at 100% while in pn_buffer_rotate().

      This appears to be caused by lowering the incoming session window to a point where session flow control activates.  In the case of my reproducer I'm setting the window size to approx 600 16K frames ~9.8MB.  The client is sending ~1MB messages with a credit window of 250.

       

      See the attached flamegraphs of the sending client:

      First - this is baseline, no session limit (default provided by proton):

      big-session.svg

       

      This flamegraph shows the client's behavior with a session limit of 9.8MB:

      small-session.svg

       

      See comment for reproducer.

        Attachments

        1. big-session.svg
          127 kB
          Ken Giusti
        2. qdrouterd.conf
          2 kB
          Ken Giusti
        3. small-session.svg
          49 kB
          Ken Giusti

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                kgiusti Ken Giusti
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: