-
Bug
-
Resolution: Done
-
Major
-
2.0.0.GA
-
None
According to the upstream doc (and consistent with my understanding of message prefetch
limits in other clients) the link credit should only be incremented
when a message's disposition has changed (accepted/rejected). From the
AMQP .Net Lite docs:
"The link credit is decremented when message arrives and incremented
when application finishes processing it (by calling
ReceiverLink.Accept(Message) or ReceiverLink.Reject(Message))" -
https://github.com/Azure/amqpnetlite/blob/master/docs/articles/building_application.md
However, this doesn't appear to be what happens... the credit is
incremented on receipt of a message, not when it's disposition is
settled. Indeed, if I instantiate a receiverlink and call Start(100,
callback); where callback is an async method that simply calls await
Task.Delay(Timespan.FromSeconds(60)), assuming the remote durable
source has 1000 messages available frame tracing indicates all 1000
messages are received, and AMQ7 shows 1000 messages in delivery
despite me never calling Accept() for any message. I'd expect to see
only 100 received, 100 "in delivery" on the broker, and 900 still
sitting in "count" on the queue.