[omniORB] Bug in omniORB 3.0
Bruce Cameron
cameron.bruce@mayo.edu
Thu, 09 Dec 1999 11:17:31 -0600
I'm running omniORB 3.0 under Irix 6.5.3 using the 7.3 MIPS C++
compiler.
When starting my server, I catch the following exception:
omniORB: Assertion failed. This indicates a bug in omniORB.
file: ../corbaObject.cc
line: 223
info: !_NP_is_pseudo()
Is this a real bug, or am I doing something really wrong in my
code? If it is a real bug, is there a patch yet? Could this be
due to my trying to create a child POA with a nil POAManager?
My server code is:
int main (int argc, char**argv)
{
try {
cerr << "1" << endl;
CORBA::ORB_var orb = CORBA::ORB_init(argc,argv,"omniORB3");
cerr << "2" << endl;
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);
cerr << "3" << endl;
PortableServer::POAManager_var mgr = poa->the_POAManager();
mgr->activate();
cerr << "4" << endl;
Factory_impl factory_servant(poa); // THROWS EXCEPTION ABOUT HERE?
cerr << "5" << endl;
PortableServer::ObjectId_var oid =
PortableServer::string_to_ObjectId("vrs_WorldFactory");
cerr << "5a" << endl;
poa->activate_object_with_id(oid,&factory_servant);
cerr << "6" << endl;
orb->run();
}
catch (const CORBA::Exception&) {
cerr << "Uncaught corba exception" << endl;
return 1;
}
return 0;
}
and the factory constructor is
Factory_impl::Factory_impl (PortableServer::POA_ptr poa)
{
cerr << "Factory_impl" << endl;
_rootPoa = poa;
cerr << "\t1" << endl;
PortableServer::IdAssignmentPolicy_var assign =
_rootPoa->create_id_assignment_policy(PortableServer::USER_ID);
cerr << "\t2" << endl;
CORBA::PolicyList policyList;
policyList.length(1);
policyList[0] = PortableServer::IdAssignmentPolicy::_duplicate(assign);
PortableServer::POAManager_var mgr =
PortableServer::POAManager::_nil();
cerr << "\t3" << endl;
_worldPoa = _rootPoa->create_POA ("Worlds", mgr, policyList);
cerr << "Factory_impl" << endl;
}
Output from this whole mess is:
1
2
3
4
Factory_impl
1
2
3
Factory_impl
omniORB: Assertion failed. This indicates a bug in omniORB.
file: ../corbaObject.cc
line: 223
info: !_NP_is_pseudo()
Abort (core dumped)
--
--Bruce