Could someone make sure that the proposed patch gets applied to 1.9?
https://bugzilla.novell.com/show_bug.cgi?id=358987

Since applying it to our server (1.2.6), we've seen uptime for 12 days compared to less than 24 hrs before.

The fix is merely to put a try...catch around the statement that closes the sockets even when shutdown fails (which it does when only 1 side of the socket is closed as in an abandoned connection). Failing to close the socket causes a leak and eventually kills the process as it runs out of file handles.

Index: HttpConnection.cs
===================================================================
--- HttpConnection.cs   (revision 94904)
+++ HttpConnection.cs   (working copy)
@@ -313,7 +313,11 @@

                                Socket s = sock;
                                sock = null;
-                               s.Shutdown (SocketShutdown.Both);
+                               try {
+                                       s.Shutdown (SocketShutdown.Both);
+                               } catch(Exception e) {
+                                       // log here?
+                               }
                                s.Close ();
                                if (context_bound)
                                        epl.UnbindContext (context);

The pushback has been that this problem should be solved upstream, but this is a SAFE fix. Regardless of the implementation of Shutdown (), Close() MUST be called to release resources associated with the socket.

PLEASE add this fix to 1.9.  Thanks.


- Steve

---------------------------------
Steve G. Bjorg

MindTouch
555 W. Beech St.
Suite 501
San Diego, CA 92101

619.795.8459x1106 office
619.795.3948 fax
425.891.5913 mobile



_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to