[omniORB] RE: No return from tcpConnection.cc::Recv

Preston, Ralph A. rpreston at mitre.org
Thu Oct 9 10:46:15 BST 2008


> > I've created a simple client/server app to transfer large files and
>am
> > having trouble with it locking up. It will run for a while then
> > abruptly stop.  The problem occurs when running in Cygwin/Windows
XP
> > often between 40 and 200 iterations.  I've tested various
>combinations
> > of Linux vs. Cygwin and local vs. remote server.  The problem
occurs
> > only when the client is running in Cygwin, I've let it run up to
170K
> > iterations in Linux without a problem.  (...)
> > (...)
> > The lockup always occurs during the call to ::recv in
> > src/lib/omniORB/orbcore/tcp/tcpConnection::Recv(...).  It seems as
if
> > the ::recv blocks and is never unblocked, judging by print
statements
> > inserted before and after the ::recv call.
> >
>
>Since recv is a winsock2 system call I really think this is not a
>problem with the code of omniORB, although of course it could be that
>there is something specific to omniorb that makes it fail in your
case.
>
>Have you tried googleing for recv+winsock2+lockup or something like
>this?

Martin,

Thanks for the suggestions...I'm now 99.999% sure it has nothing to do
with omniORB.

I simplified the test program further by removing the
new-vector/copy-data-into-vector/delete-vector.  After removing the
new/copy/delete the test program is now at iteration 34K and still
going (on two different machines.)

(The program was locking up even after I changed the vector<char> to
vector<int>, but the std::copy should have worked in either case.)

Thanks again,

Ralph






More information about the omniORB-list mailing list