[omniORB] Exception thrown when calling resolve_initial_references
John A. Byerly
byerly@stargate.net
Fri, 4 Aug 2000 18:21:00 -0500
Help!
I am migrating our project from omniORB 2.7.1 to omniORB 3.0.0. Our core
code calls resolve_initial_references to get the Naming service, and then
when a DLL is loaded, the code in the DLL calls resolve_initial_references
again. This second call causes an exception to be thrown, but only after
about 20 - 30 seconds. This code used to work.
I traced the problem into the following code (resolveBootAgent() inside
initRefs.cc).
// XXX we will end up in a deadlock if this invocation turns
// out to be a chain of invocations and eventually go back
// to us.
if (omniORB::trace(10)) {
CORBA::String_var ior(omniURI::objectToString(the_bootagent));
omniORB::logger l;
l << "Trying to resolve initial reference `" << id << "'\n";
l << " with boot agent: " << (const char*)ior << "\n";
}
result = the_bootagent->get(id);
Execution hangs on the last line (for 20 - 30 seconds).
This is an NT project in VC++ 6.0. When I run the release version, I get
the following message:
omniORB: Assertion failed -- mutex should not be held.
This is a bug in omniORB. Please submit a report (with stack
trace if possible) to <omniorb@uk.research.att.com>.
file: ..\corbaBoa.cc
line: 833
Is this true, or am I doing something wrong?
Thanks!
JAB