[omniORB] omniORB comm failure problems on cygwin

Duncan Grisby duncan at grisby.org
Mon Feb 5 17:53:29 GMT 2007


On Tuesday 23 January, "Heley, Mike" wrote:

> The failures appear in the process activation server. This server has an
> activate method which forks and execs a new process, returning an ior to an
> object in the new process. It does this by waiting for the process to start
> up and make a call back to an object in the server, passing back the ior.
> The new process finds the object to call from a corbaloc URI passed in an
> environment variable. The object has been activated in the omniINSPOA. The
> server listens to a fixed port number 9281. This server has worked reliably
> on linux in the past. 

Forking from multi-threaded processes is often problematic. I wouldn't
be surprised if cygwin gets it wrong occasionally.

It's not especially trivial to do, but you could try pre-forking a child
before you start omniORB in the activation server, then send messages to
that child through a pipe. The child can remain single threaded and fork
the children as necessary. Ugly, but safer than forking once omniORB is
going.

Cheers,

Duncan.

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



More information about the omniORB-list mailing list