[Mono-bugs] [Bug 61602][Nor] Changed - Webclient hangs after a random count of serialized requests
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Fri, 16 Jul 2004 09:17:33 -0400 (EDT)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by dick@ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=61602
--- shadow/61602 2004-07-16 08:12:19.000000000 -0400
+++ shadow/61602.tmp.19843 2004-07-16 09:17:33.000000000 -0400
@@ -85,6 +85,30 @@
Do this 10 times and chech netstat -A inet then. I have tons of open
sockets in WAIT state there then.
As this is allways an open connection to the connection partner its
connection limit can shortly be reched like that wich results in
connection refuses.
+
+------- Additional Comments From dick@ximian.com 2004-07-16 09:17 -------
+Windows has a rather strange idea of socket binding. If SO_REUSEADDR
+is set, then a new socket can be bound over an existing socket. Ie,
+anyone can bind a new server over IIS by just creating a new socket on
+port 80.
+
+Theres a windows-specific option called SO_EXCLUSIVEADDRUSE but using
+that means the socket MUST be closed properly or a denial of service
+can occur.
+
+The default for SOCK_STREAM on windows seems to do the same as any
+sane system when SO_REUSEADDR is set.
+
+There are several socket WAIT states, you don't specify which one
+you're seeing (I'm guessing it's TIME_WAIT). FIN_WAIT1 and FIN_WAIT2
+show the socket is shutting down, CLOSE_WAIT that the other end has
+shut down, and TIME_WAIT. With SO_REUSEADDR set, TIME_WAIT sockets
+can be bound over with a new socket.
+
+Your test case is up to 2500 here and still running, too. Please give
+more details of your distribution and kernel version.
+
+