Re: Abort at program end



Marc Siegel wrote:

Here is a backtrace from a crash of a client talking to a server on the same PC (the client is the one that crashes).

** ERROR **: file orbit-object.c: line 147 (do_unref): assertion failed: (robj->refs < ORBIT_REFCOUNT_MAX && robj->refs > 0)
aborting...

This error indicates that there were too many unref's on a stub object.



This error only occurs with ORBit-cpp, things work fine on MICO and TAO.

I found them to be a bit more forgiving too. To fix the problem you need to track down where the extra unref's are occuring. The abort at the end of the program is too far after the fact. Valgrind is also useful for tracking problems down. The C++ stubs are new'ed and then deleted in _duplicate and release. So if you have a leak or a double free then that is definitely going to mess up the reference counting. If you can show that orbitcpp is non-compliant, I'll definitely fix it.

--
Bowie Owens

CSIRO Mathematical & Information Sciences
phone  : +61 3 9545 8055
fax    : +61 3 9545 8080
mobile : 0425 729 875
email  : Bowie Owens csiro au





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]