Pre-buffered messages aren't released when consumer closes down

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Pre-buffered messages aren't released when consumer closes down

Krzysztof
Hi guys,

We have an issue in NMS-AMQP
https://issues.apache.org/jira/browse/AMQNET-605 which simply results in
prefetched messages not being released after consumer closes down. I looked
at it today, and it seems to be not as simple to fix as I expected.
We have one failing unit tests which was written based on qpid-jms
implementation -->
https://github.com/apache/activemq-nms-amqp/blob/65989e154c34c67b284c91b861d0ddc0a7c47b69/test/Apache-NMS-AMQP-Test/Integration/ConsumerIntegrationTest.cs#L235-L294

Can you please help mi to understand how it is possible to send release
disposition after receiver link is closed? From what I've seen in qpid-jms
there is no explicit disposition being send while receiver link is being
closed. Therefore I assume proton must be sending this disposition
implicitly. If so, my question is, whether this behavior meets the amqp
spec. If so, I assume that AmqpNetLite which is our equivalent of proton,
should mimic this behavior.

Thanks,
Chris
Reply | Threaded
Open this post in threaded view
|

Re: Pre-buffered messages aren't released when consumer closes down

Robbie Gemmell
It is proton that sends the disposition, as you assumed. The spec
allows for dispositions to be sent after links have detached, as the
deliveries can still be 'live' in some of these cases, but when it
occurs after the link is closed like below they actually have no
effect sincee the deliveries arent 'live' anymore as the link/terminus
is already gone. I wouldnt try to mimmick the behaviour, just delete
that test.

On Sun, 22 Sep 2019 at 17:14, Krzysztof <[hidden email]> wrote:

>
> Hi guys,
>
> We have an issue in NMS-AMQP
> https://issues.apache.org/jira/browse/AMQNET-605 which simply results in
> prefetched messages not being released after consumer closes down. I looked
> at it today, and it seems to be not as simple to fix as I expected.
> We have one failing unit tests which was written based on qpid-jms
> implementation -->
> https://github.com/apache/activemq-nms-amqp/blob/65989e154c34c67b284c91b861d0ddc0a7c47b69/test/Apache-NMS-AMQP-Test/Integration/ConsumerIntegrationTest.cs#L235-L294
>
> Can you please help mi to understand how it is possible to send release
> disposition after receiver link is closed? From what I've seen in qpid-jms
> there is no explicit disposition being send while receiver link is being
> closed. Therefore I assume proton must be sending this disposition
> implicitly. If so, my question is, whether this behavior meets the amqp
> spec. If so, I assume that AmqpNetLite which is our equivalent of proton,
> should mimic this behavior.
>
> Thanks,
> Chris
Reply | Threaded
Open this post in threaded view
|

Re: Pre-buffered messages aren't released when consumer closes down

Krzysztof
Thank you for clarification Robbie. I will do as you said.


On Mon, Sep 23, 2019 at 12:31 PM Robbie Gemmell <[hidden email]>
wrote:

> It is proton that sends the disposition, as you assumed. The spec
> allows for dispositions to be sent after links have detached, as the
> deliveries can still be 'live' in some of these cases, but when it
> occurs after the link is closed like below they actually have no
> effect sincee the deliveries arent 'live' anymore as the link/terminus
> is already gone. I wouldnt try to mimmick the behaviour, just delete
> that test.
>
> On Sun, 22 Sep 2019 at 17:14, Krzysztof <[hidden email]> wrote:
> >
> > Hi guys,
> >
> > We have an issue in NMS-AMQP
> > https://issues.apache.org/jira/browse/AMQNET-605 which simply results in
> > prefetched messages not being released after consumer closes down. I
> looked
> > at it today, and it seems to be not as simple to fix as I expected.
> > We have one failing unit tests which was written based on qpid-jms
> > implementation -->
> >
> https://github.com/apache/activemq-nms-amqp/blob/65989e154c34c67b284c91b861d0ddc0a7c47b69/test/Apache-NMS-AMQP-Test/Integration/ConsumerIntegrationTest.cs#L235-L294
> >
> > Can you please help mi to understand how it is possible to send release
> > disposition after receiver link is closed? From what I've seen in
> qpid-jms
> > there is no explicit disposition being send while receiver link is being
> > closed. Therefore I assume proton must be sending this disposition
> > implicitly. If so, my question is, whether this behavior meets the amqp
> > spec. If so, I assume that AmqpNetLite which is our equivalent of proton,
> > should mimic this behavior.
> >
> > Thanks,
> > Chris
>