[omniORB] Crash on using nil reference

Tim Ward timw@lsl.co.uk
Wed, 9 May 2001 11:43:55 +0100


First problem:
===========

OK, so the first problem was a missing _duplicate, so a particular reference
was held in too many _vars, all of which were being destroyed during stack
unwind after the nil reference exception.

Trying to release the reference too many times inside an exception handler
went completely haywire, ending up throwing a sequence of access violation
exceptions until I ran out of stack.

Really, I'm *not* impressed. Surely the whole point of a smart pointer is
that it handles this sort of resource release error in a *vastly* more
helpful manner than just crashing inside some obscure runtime library code
to which Microsoft don't release the sources?

A logged message saying "Sorry, you can't release this reference any more,
as its use count has already been decremented to zero" would have been more
helpful. It really should *not* take a week of disassembler level debugging
to diagnose a missing _duplicate.

Second problem:
=============

It still seems to be the case that after running the client a few times it
eventually hangs waiting for a reply from a server which never arrives, and
it's necessary to restart the servers to recover. I'll clean the machine
down, restart everything, make sure I know what's happening and post the
logs.

Tim Ward
Brett Ward Limited - www.brettward.co.uk