[ https://issues.apache.org/jira/browse/PROTON-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross updated PROTON-1521: -------------------------------- Labels: perf (was: ) > [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.19.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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org