1.7.7 blocking socket problem

Mark Rivers rivers@cars.uchicago.edu
Wed Nov 17 17:20:00 GMT 2010


I believe I have discovered a problem with blocking sockets on Cygwin.
The problem is that very rarely a call to send() will never return.

I am having problem when using the Channel Access TCP/IP protocol in the
EPICS control system (http://www.aps.anl.gov/epics/).

I have isolated the problem to a call to send() on the server which
never returns.  This problem happens with a large number of well-tested
clients, running on both Linux and Windows.  I can build the same EPICS
server without Cygwin, using the MS VC++ Windows compiler and libraries
and it does not fail.  When the call to send() hangs it is sending a
large packet (just over 8KB).  The failure rate is very low, perhaps
once in 10 million calls to send().

I realize that my application is difficult to reproduce for the Cygwin
developers.  I am willing to try to write a simple socket server and
client to try to reproduce the problem in a simple test setup.  But
before I do that I would like to first know if there is a known problem
of this sort that has already been reported, and perhaps fixed.  I did
look through the mailing list archives and did not see anything.

This problem occurs on every Cygwin system it has been tested on (more
than 6), so it is not restricted to particular hardware.  All systems
are running Windows XP SP3 I believe.

Thanks very much,
Mark Rivers

Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

More information about the Cygwin mailing list