[omniORB] Apparent crash-level bug in CORBA::Object::_is_a

Duncan Grisby dgrisby@uk.research.att.com
Mon, 31 Jan 2000 11:21:29 +0000


On Wednesday 26 January, Nathaniel Smith wrote:

> I managed to narrow the problem down to the object id's I was using;
> apparently my idl2perl compiler decided that the proper name for the
> ServerContextManager object was IDL:omg.org/ServerContextManager:1.0,
> whereas omni considers it to be IDL:ServerContextManager:1.0.  I'm not

Where is ServerContextManager defined?  If it's not in a file which
has #pragma prefix "omg.org" in it, omniORB is right. My guess is that
COPE has the same bug that the old omniidl2 has, in that it doesn't
scope #pragma prefix to the file it is in. If you put
#pragma prefix "" at the end of any files which set it to "omg.org",
COPE will probably use the right repository ids.

> sure who's correct, but it's kind of beside the point.  The point being,
> ServerContextManager->_narrow made an IIOP call to
>   boolean CORBA::Object::_is_a(in string iface)
> with the argument IDL:omg.org/ServerContextManager:1.0, and the server
> program was brought down.  This should be impossible to do from a client.

You're right -- that shouldn't crash the server, it should just return
false. What platform and omniORB version are you using?  Can you give
a stack trace where it crashes?

Cheers,

Duncan.

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