[omniORB] Assert in omniORB on Solaris 6

Duncan Grisby dgrisby@uk.research.att.com
Mon, 04 Dec 2000 11:14:52 +0000


On Thursday 30 November, Bill Minckler wrote:

>   I'm trying to load a shared object (using dlopen) on Solaris and start
> up CORBA services using an object in the library.  On Redhat Linux 6.2
> this works great, on Solaris I get the following assert when I call the
> "_this()" method on my servant object.
> 
> omniORB: Assertion failed.  This indicates a bug in omniORB.
>  file: ../omniInternal.cc
>  line: 746
>  info: pof
> Abort (core dumped)

It looks like the C++ static initialisers in the stubs are not being
run when the library is opened. Are you sure the stubs are linked into
the shared library?  Are you using dlopen() with RTLD_LAZY?  Maybe you
should try RTLD_NOW. That might help.

It certainly is possible to get Solaris to run static initialisers
compiled with g++, since omniORBpy works with g++ on Solaris.

> I also have a problem with gdb crashing (on Linux) when it tries to load
> any CORBA library.  Has anyone seen this (or know what version I should
> be using)?  I'm using: "GNU gdb 4.17.0.11 with Linux support"

The gdb-4.18-11 which comes with RedHat 6.2 works fine for us.

Cheers,

Duncan.

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