qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tobias Duckworth <tob...@duckworth.uk.com>
Subject pn_delivery_finalize Assertion failure
Date Tue, 07 Mar 2017 16:51:45 GMT

I'm using qpid-proton 0-12.2 in 'connection_engine' mode.

Very occasionally I'm getting errors in the function pn_delivery_finalize
(engine.c) - I've been trying to work out what's going wrong here, but the
call pattern is pretty tricky to work out (partly due to the use of macros
to define functions on pn_object)

What I can concretely see sometimes when this goes wrong is either of the
following assertions triggering:

 pn_delivery_finalize: Assertion `pn_refcount(delivery) == 0' failed.
 pn_delivery_finalize: Assertion `pn_refcount(delivery) == 1' failed.

It seems like the function pn_delivery_finalize gets called multiple times,
and can end up recursively calling itself via some of the functions it calls

What I do notice every time that this happens is that delivery->state.init
is false, whereas when it doesn't go wrong this is set to true. 
I have convinced myself by means of adding some debug output that the
function pn_delivery_state_init is getting called on my delivery object, so
it should be initialised as true, but for some reason by the time
pn_delivery_finalize is called that is no longer the case.

Has anyone else seen either of these assertions trigger?

I've put in a whole load of debug output to try to work out where the
problem is, but am getting nowhere with it.

Any ideas or help gratefully received.


View this message in context: http://qpid.2158936.n2.nabble.com/pn-delivery-finalize-Assertion-failure-tp7660170.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

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

View raw message