[ 
https://issues.apache.org/jira/browse/PROTON-255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13592316#comment-13592316
 ] 

Ken Giusti commented on PROTON-255:
-----------------------------------

The "FLOW" frame is missed by the driver since it is created by the call to 
pn_transport_quiesced() done by the tsync call.  Usually, transport output is 
generated by the driver when it checks for pending output (done during the call 
to pn_connector_process).  Since the driver is not creating the output, it is 
not aware of the need to send it.  So when pending connections are walked the 
connector is never returned.


#4  0x00007f4f4c2ff749 in pn_post_flow (transport=0xe73ce0, ssn_state=0xeb4748, 
state=0xf40798) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2141
#5  0x00007f4f4c2ff9a3 in pn_process_flow_receiver (transport=0xe73ce0, 
endpoint=0xf36fd0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2166
#6  0x00007f4f4c3009ca in pn_phase (transport=0xe73ce0, phase=0x7f4f4c2ff8a5 
<pn_process_flow_receiver>) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2512
#7  0x00007f4f4c300a85 in pn_process (transport=0xe73ce0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2525
#8  0x00007f4f4c300d40 in pn_output_write_amqp (io_layer=0xe742b0, 
bytes=0xe74790 "", size=16384) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2579
#9  0x00007f4f4c301cf7 in pn_io_layer_output_passthru (io_layer=0xe74278, 
bytes=0xe74790 "", size=16384) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2991
#10 0x00007f4f4c301cf7 in pn_io_layer_output_passthru (io_layer=0xe74240, 
bytes=0xe74790 "", size=16384) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2991
#11 0x00007f4f4c300f5c in transport_produce (transport=0xe73ce0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:2619
#12 0x00007f4f4c302000 in pn_transport_pending (transport=0xe73ce0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:3070
#13 0x00007f4f4c302142 in pn_transport_quiesced (transport=0xe73ce0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/engine/engine.c:3104
#14 0x00007f4f4c308603 in pn_messenger_sent (messenger=0xe6ddc0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/messenger.c:1088
#15 0x00007f4f4c306f81 in pn_messenger_tsync (messenger=0xe6ddc0, 
predicate=0x7f4f4c3085bb <pn_messenger_sent>, timeout=-1)
    at /home/kgiusti/work/proton/qpid-proton/proton-c/src/messenger.c:621
#16 0x00007f4f4c307282 in pn_messenger_sync (messenger=0xe6ddc0, 
predicate=0x7f4f4c3085bb <pn_messenger_sent>) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/messenger.c:687
#17 0x00007f4f4c3087c2 in pn_messenger_send (messenger=0xe6ddc0) at 
/home/kgiusti/work/proton/qpid-proton/proton-c/src/messenger.c:1139
#18 0x0000000000401f3f in main (argc=8, argv=0x7fff718b8b68) at 
/home/kgiusti/work/proton/qpid-proton/tests/traffic/clients/c/msgr-recv.c:241
                
> Messenger stall in send(): frames buffered in transport not written to driver.
> ------------------------------------------------------------------------------
>
>                 Key: PROTON-255
>                 URL: https://issues.apache.org/jira/browse/PROTON-255
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.4
>            Reporter: Ken Giusti
>            Priority: Blocker
>
> I've created a simple "ping-pong" test between two Messenger clients.  One 
> client sends 10k messages to the other, which replies.  The test stalls after 
> sending 10 messages in each direction, which is the value used for link 
> credit.
> The cause of the problem is that the FLOW frame sent by one client is not be 
> received by the other.  The failure is due to the FLOW frame remaining 
> buffered in the sender's transport buffer, not being written to the driver.  
> The driver is waiting for socket activity, and never "sees" the pending 
> output sitting in the transport.
> This bug appears to have been introduced by PROTON-225

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to