[omniORB] Weird issue running omniORB under wine

Duncan Grisby duncan at grisby.org
Fri Mar 19 15:36:12 GMT 2010


On Tue, 2010-03-02 at 11:36 -0700, Barry Roberts wrote:

> I have a server-type CORBA application that runs just great under
>  Windows but is a real pain to keep updated.  As part of the process of
>  porting it to Linux I'm trying to run it under Wine as an interim step
>  to make maintenance and updates much easier.  It works for a short
>  while, but then at some point it dies with:
> 
> omniORB: Assertion failed.  This indicates a bug in the application using omniORB, or maybe in omniORB itself.
>  file: SocketCollection.cc
>  line: 946
>  info: s->pd_fd_index >= 0

[...]
> I realize this is NOT an omniORB problem, but I also quickly realized
>  that it would be pretty difficult for me to get familiar enough with
>  the code to figure out why this was happening.  So if anyone sees any
>  easy things I can try to track down what's different between Wine and
>  Windows so I can make this work, I would appreciate it.

Well, it's possible that it is an omniORB problem. Can you try with the
latest SVN version?  There have been a few fixes in that area of the
code that I don't think will be relevant, but it's worth using the
latest version to be sure.

My guess is that the problem comes down to the strange way Windows
fd_sets work. Wine is possibly not using exactly the same semantics,
which will be a problem for omniORB because it relies on implementation
details for performance reasons. There is code around line 907 or
SocketCollection.cc that reaches in to the fd_set array and sets it
directly. Perhaps you could try changing it to use the FD_SET macro?
Search for other uses of fd_array in that file and change them to use
FD_SET / FD_CLR too. I don't know if that will help, but it's worth a
go.

Cheers,

Duncan.

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





More information about the omniORB-list mailing list