[omniORB] Crash on using nil reference

Tim Ward timw@lsl.co.uk
Fri, 4 May 2001 09:36:52 +0100


-----Original Message-----
From: Duncan Grisby <dgrisby@uk.research.att.com>
To: Tim Ward <timw@lsl.co.uk>
Cc: omniorb-list@uk.research.att.com <omniorb-list@uk.research.att.com>
Date: 03 May 2001 17:43
Subject: Re: [omniORB] Crash on using nil reference


>On Thursday 3 May, "Tim Ward" wrote:
>> 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.

I'd already discovered how sensitive this setup is to library choices. I
have verified (yet again!) that all three applications are using the "debug
multithreaded DLL" runtime libraries and the _rtd versions of the OmniORB
libraries. (If they aren't it crashes much earlier, as soon as I try to do
anything with a CosNaming::Name, as noted by other people in other postings
to this list.)

This is somewhat worrying, as I would agree with you that the application
falling apart in the RTL's code for unwinding stack frames on exception
looks like a runtime libraries issue.

Thought: I'm using Visual C++ version 5 (for historical reasons) - should
the delivered libraries and DLLs work with version 5, or would I be better
advised to use version 6?

>Perhaps running the server with -ORBtraceLevel 20 would show more
>information.

I'll give that a go next.

>Do the echo examples run?  What happens if you run
>eg3_clt having put a nil object reference in the naming service?

I haven't tried running the examples. My task is to evaluate OmniORB as a
replacement for Visibroker, so I'm emulating and converting bits of
(working) Visibroker code.

(When/if I've got this crashing sorted the next question will be how to
integrate the orb's loop with MFC, so that an application can be both an MFC
app with a user interface and a CORBA server, like the Visibroker WDispatch
stuff (*without* any busy-waiting loops) - I'm sure this is a FAQ, I just
haven't found the documentation yet.)

> -- Duncan Grisby  \  Research Engineer  --

Thanks

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