[
https://issues.apache.org/jira/browse/PROTON-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Ross updated PROTON-1521:
--------------------------------
Fix Version/s: (was: proton-c-0.19.0)
proton-c-0.20.0
> [c proactor] sender stalls responding to Flow opening incomingWindow
> --------------------------------------------------------------------
>
> Key: PROTON-1521
> URL: https://issues.apache.org/jira/browse/PROTON-1521
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c
> Affects Versions: proton-c-0.17.0
> Environment: Fedora 25
> Reporter: Chuck Rolke
> Assignee: Andrew Stitcher
> Labels: perf
> Fix For: proton-c-0.20.0
>
> Attachments: send-FLAMEGRAPH.svg
>
>
> 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:
> {noformat}
> 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)}
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]