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

Ted Ross commented on PROTON-401:
---------------------------------

My code only calls pn_link_drained once when the output buffer empties.  
Because of this issue, subsequent drain requests (like from 
qpid::messaging::Receiver::fetch) are not responded to and hang (even if there 
is a timeout).

Since I'm doing the full output processing for every IO event, it's possible 
that I may have a relatively easy workaround for this.  Currently, I don't 
always re-process the connector in proton after calling pn_link_drained.

> Ordering issue prevents credit drain from working properly
> ----------------------------------------------------------
>
>                 Key: PROTON-401
>                 URL: https://issues.apache.org/jira/browse/PROTON-401
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.5
>            Reporter: Ken Giusti
>            Assignee: Rafael H. Schloming
>             Fix For: 0.6
>
>         Attachments: drain-error.patch, drain-hack.patch
>
>
> If the sending link calls pn_link_drained() to indicate that it has send all 
> pending data, and afterwards it receives a Flow frame with drain=true from 
> the peer, then the drain never completes.
> The ordering is the problem: if the flow frame w/drain=true is received 
> _BEFORE_ the sender calls pn_link_drained(), then it works.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to