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

[c proactor] sender stalls responding to Flow opening incomingWindow

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • proton-c-0.17.0
    • None
    • proton-c
    • Fedora 25

    Description

      A test program uses examples/c/proactor/send.c and receive.c to source and sink messages.
      The program advertises small limits (Open - max-frame-size=16384, Begin - incoming-window=16) in response to the link created by program send. Program send is revised to send 4 Mb messages.

      Over the wire the send program blasts 16 16Kbyte frames and then stops due to a closed session window. The test program handles the data and then issues a flow with room for some number of frames in the incoming window. Then the send program takes on the order of 0.15 seconds before it starts sending again. During that time send is not processing any proton events. This is the issue: why does the proactor send program not start sending again when the Flow is received?

      The failing send.c program is nearly identical to examples/c/proactor/send.c but you can get to my development set at https://github.com/ChugR/qpid-proton/tree/event-instrumeter/examples/c/proactor

      A network trace shows:

      Frame: 45 11.246624   ->  transfer [0,0] (0) credit -> 100 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 46 11.246637   ->  transfer [0,0] (0) credit -> 100 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 54 11.246965  <-   flow [0,0] (1,99) credit -> 99
      Frame: 74 11.417271   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 75 11.417315   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 77 11.417353   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 78 11.417374   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 80 11.417409   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 81 11.417440   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 83 11.417473   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 84 11.417491   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 86 11.417516   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 87 11.417530   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 89 11.417550   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 90 11.417751  <-   flow [0,0] (1,99) credit -> 99
      Frame: 106 11.575295   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      Frame: 107 11.575334   ->  transfer [0,0] (0) credit -> 99 {(txSettled: False) (DISP: <-   settled:True, accepted)}
      

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            astitcher Andrew Stitcher
            chug Charles E. Rolke

            Dates

              Created:
              Updated:

              Slack

                Issue deployment