[omniORB] Problem with POA object map.

Duncan Grisby duncan at grisby.org
Mon Oct 16 14:26:30 BST 2006


On Monday 16 October, Guillaume Schmid wrote:

[...]
> My problem is that when I close the service I notice in the log that I
> have a LOT of message like:
> 
> omniORB: Object table entry root/ChildPOA<currFrame> (dead) deleted.
> omniORB: Disable ObjRef(IDL:MzDist/DistChannelImage2d:1.0)
> root/ChildPOA<currFrame>
> 
> so I believe that my attempt to destroy the servant for each frame left
> some entry in the POA.

Actually, that's a sign that you have leaked a load of object
references, not anything in the POA. The message about object table
entries is due to the fact that the object references hold a pointer to
the object table entries, even though they are no longer actually in the
object table.

The problem is that you have leaked an object reference in _this:

[...]
> // The client implements this method
> _fHandler->handleFrame( fw->_this() );

You need to release the result of _this, so turn that line into
something like

  FrameWrapper_var obj = fw->_this();
  _fHandler->handleFrame(obj);

That will fix the leak.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list