TCP connections can occasionally fail because of a winsock bug
robert bowman
bowman@montana.com
Fri Nov 16 06:24:00 GMT 2001
On Friday 16 November 2001 02:36, you wrote:
> Thanks for that interesting description. ÃÂ There's that SO_REUSEADDR
> call to setsockopt(). ÃÂ I wonder if that could be a help. ÃÂ It's
> treated somewhat dangerous, though.
Corinna,
No, that was one of the first things I tried. The way it acts is like a
server on Linux/AIX4 that does not set SO_REUSEADDR, though. They will fail
with a 'could not bind...' error for a couple of minutes after a restart and
before the port is freed up. I assume it is the socket stack that is keeping
track of things. I'll have to try one of the little server testbeds on
NT/2000 and see if it will restart immediately with SO_REUSEADDR set. We've
been focusing on the RPC implementation, since that is where we are having a
problem. Our apps were developed for AIX4 and use about every flavor of IPC
and X communication, and typically are distributed across several machines.
On a NT/2000 homogenous network, the throughput degrades badly, even though
the machines are typically much newer and faster. So far, it looks like
socket problems, even though the MS metrics show the network to be in good
shape.
The other problem for the RPC library is the dubious select implementation.
Timeouts don't work as the select indicates the port can be read, but the
read returns EWOULDBLOCK. That is nothing new, though, and has broken a
number of ported apps. I've a couple of Perl/Tk test servers that use
'fileevent' , and they always require rework if I need to run on a NT box.
bob
More information about the Cygwin-developers
mailing list