You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Gordon Sim (JIRA)" <ji...@apache.org> on 2015/07/27 16:00:08 UTC

[jira] [Commented] (PROTON-961) messenger doesn't handle multi-frame transfers

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

Gordon Sim commented on PROTON-961:
-----------------------------------

The pni_pump_in function in messenger.c proceeds to process incoming deliveries even if they are partial. There *is* a check for pn_delivery_partial at the start, but I'm not quite sure what it is trying to test there.

The following change seems to fix the problem with large incoming messages and doesn't break any of the tests. Is it possible the original check was just written incorrectly?

{noformat}
--- a/proton-c/src/messenger/messenger.c
+++ b/proton-c/src/messenger/messenger.c
@@ -987,7 +987,7 @@ static void pn_condition_report(const char *pfx, pn_condition_t *condition)
 int pni_pump_in(pn_messenger_t *messenger, const char *address, pn_link_t *receiver)
 {
   pn_delivery_t *d = pn_link_current(receiver);
-  if (!pn_delivery_readable(d) && !pn_delivery_partial(d)) {
+  if (!pn_delivery_readable(d) || pn_delivery_partial(d)) {
     return 0;
   }
{noformat}

> messenger doesn't handle multi-frame transfers
> ----------------------------------------------
>
>                 Key: PROTON-961
>                 URL: https://issues.apache.org/jira/browse/PROTON-961
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.10, 0.11
>            Reporter: Gordon Sim
>
> See QPID-6651 for a reproducer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)