On Thu, Jan 6, 2022 at 8:56 PM Pete Fawcett <p...@fawcett.co.uk> wrote:
> *Questions:*
>
> Firstly, a simple work around is to check the link pointer when moving
> delivery pointers from 'pending' to completed and discarding them if the
> 'link' is NULL . Does this suffice?

I think that would probably work. However it would be nicer to
actually remove them from pending before they were invalidated. Does
calling abort_pending() for the link before closing it in
https://github.com/apache/qpid-cpp/blob/main/src/qpid/broker/amqp/Session.cpp#L764
prevent the segfault?

> Secondly, does the link need to be cleared just because a message is too
> big for the queue? Can it not be signalled back to the sender in a less
> drastic manner? (Dropping the link means it is likely for numerous messages
> to be repeatedly delivered when using "at least once" delivery)

The message could be rejected. (I think that would involve changing
the exception handling at
https://github.com/apache/qpid-cpp/blob/main/src/qpid/broker/amqp/Session.cpp#L948
to not throw but to simply reject the message).


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to