[omniORB] OmniORBpy 3.0 - trouble with callbacks?

Duncan Grisby dgrisby@uk.research.att.com
Tue, 25 Jul 2000 18:17:14 +0100


On Tuesday 25 July, "Chris Knight" wrote:

> All, I've been working with omniORBpy 3.0 for a while now (as a client
> to a Java server) and everything works great except now I've needed to
> add callbacks.  I'm able to get my simple test program (a very simple
> chat client/server system using callbacks and nameservice, source
> available if interested) to work fine but my larger software project
> hangs when it tries to call the callback interface method (this callback
> method just sets an attribute on the object that is the callback
> interface handler).  The callback interface also works fine with the
> Java client.
> 
> What especially makes me think it's the client is that I can't ctrl-C
> the client once it reaches the stage where the callback is called.

Callbacks certainly should work fine. Are you sure that you have
activated the Python client's POA before the callback happens?  That's
something I often forget to do.

Are you calling the Java server from within the Python call-back
operation?  It's possible that the Java ORB can't cope with having a
new connection come it while it's waiting for an operation to return.

Other than that, it could be a bug in omniORBpy. Try attaching to the
blocked Python process with a debugger. Find the thread which is
servicing the callback up-call, and see what it is blocked on.
Hopefully that will tell us whether it's an omniORBpy bug or not.

Python's ctrl-C handling is a bit odd, and it often can't interrupt
the process if it's blocked within the ORB, so that fact that it isn't
working doesn't necessarily mean that omniORBpy has done something
wrong. It might just be blocked waiting for the Java ORB to do
something.

Cheers,

Duncan.

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