[omniORB] Crash on using nil reference

Duncan Grisby dgrisby@uk.research.att.com
Thu, 03 May 2001 17:36:06 +0100


On Thursday 3 May, "Tim Ward" wrote:

[...]
> omniORB: ERROR -- the application attempted to invoke an operation
>  on a nil reference.
> omniORB: throw INV_OBJREF from exception.cc:456

This shows that omniORB has thrown CORBA::INV_OBJREF in response to
the call on nil.

> omniORB: omniRemoteIdentity deleted.

This shows that some other clean-up code is running, meaning that the
system has survived the exception, and is deleting object references
held by the _var instances.

[...]
> I do *not* expect using a nil reference to crash the client in an
> uncontrolled fashion, and I most certainly do *not* expect using a
> nil reference to upset the state of the servers involved so that
> they also need to be restarted.

They shouldn't. As seen above, omniORB throws INV_OBJREF when you
invoke on nil. No matter what the client does, the server shouldn't be
affected.

There is clearly something broken about your set-up. My first
suspicion would be something to do with mixing code compiled with
different debug options. Windows gets very unhappy about that.

Perhaps running the server with -ORBtraceLevel 20 would show more
information. Do the echo examples run?  What happens if you run
eg3_clt having put a nil object reference in the naming service?

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --