[
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)