[omniORB] trying to interpret omniORB debug traces

Stefan Seefeld seefeld@sympatico.ca
Wed Feb 12 04:22:02 2003


hi there,

I'm in the process of debugging an application and I'm seeing
this debug trace:

omniORB: State root<336003072> (active) -> deactivating
omniORB: Object is still busy -- etherealise later.
omniORB: POA(RootPOA) etherealising object.
  id: IDL:fresco.org/Fresco/DrawingKit:1.0
omniORB: State root<336003072> (deactivating) -> etherealising
omniORB: Removing root<336003072> (etherealising) from object table
omniORB: RefCountServantBase has zero ref count -- deleted.
omniORB: throw BAD_INV_ORDER from poa.cc:684 (NO,BAD_INV_ORDER_WouldDeadLock)
omniORB: throw BAD_INV_ORDER from GIOP_C.cc:241 (NO,BAD_INV_ORDER_WouldDeadLock)

I'd much appreciate if anybody could help me to interpret that. The code
I'm calling is this:

void KitImpl::deactivate()
{
   PortableServer::POA_var poa = _default_POA();
   PortableServer::ObjectId *oid = poa->servant_to_id(this);
   poa->deactivate_object(*oid);
   delete oid;
}

where KitImpl is derived from RefCountServantBase... (the real
object is derived from KitImpl and holds the repoId
"IDL:fresco.org/Fresco/DrawingKit:1.0".

Where is the error ? What causes the 'WouldDeadLock' exception
to be thrown ?

Thanks a lot !

Stefan