Received: (from majordom@localhost) by hyperreal.org (8.8.5/8.8.5) id OAA00552; Mon, 28 Jul 1997 14:01:20 -0700 (PDT) Received: from brianb.organic.com (localhost.hyperreal.org [127.0.0.1]) by hyperreal.org (8.8.5/8.8.5) with SMTP id OAA00500 for ; Mon, 28 Jul 1997 14:01:09 -0700 (PDT) Message-Id: <3.0.3.32.19970728133702.008aadc0@localhost> X-Sender: brian@localhost X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.3 (32) Date: Mon, 28 Jul 1997 13:37:02 -0700 To: new-httpd@apache.org From: Brian Behlendorf Subject: Re: [PATCH] solaris sockets In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org 1) Can we put this in the regular documentation somewhere? should we start platform-specific "issues" pages? 2) Anyone know if these problems are "fixed" in Solaris 2.6? 3) Does solaris X86 have this problem too? "fascinating, captain" Brian At 11:37 AM 7/28/97 -0700, you wrote: >I think the comment in the patch speaks for itself. I'll mail this to all >the PR submitters. This is against 1.2.1 without the previous patch >applied. > >Dean > >--- apache_1.2.1-dist/src/http_main.c Sun Jun 29 11:08:37 1997 >+++ apache_1.2.1/src/http_main.c Mon Jul 28 11:35:36 1997 >@@ -1982,7 +1982,27 @@ > exit(1); > } > >+ /* Solaris, at least versions 2.4, 2.5 and 2.5.1, even with various >+ * levels of tcp/ip patches available as of July 28, 1997, completely >+ * botches up if you do any form of dup() on a socket. If that dupped >+ * socket is then put into listen() and accept()s at least one >+ * connection, then Bad Things happen. Things work fine until the >+ * socket is close()d. At that point, no matter what SO_REUSEADDR was >+ * set to, nothing can rebind the same address/port, you'll get >+ * "Address in use" errors. This takes about 5 minutes to timeout. >+ * >+ * So we do no slacking on solaris sockets. If you can live with those >+ * restrictions (which essentially means you have to use SIGUSR1 and >+ * not SIGHUP to restart the server, and should you ever need to stop >+ * the server you'll have at least a 5 minute wait before you can >+ * restart it) then you can remove this #ifndef. You'll get yourself >+ * another 120ish virtual hosts (assuming you're using Listen for each >+ * of them) before you run into another Solaris problem: the 256 >+ * FILE * limitation. >+ */ >+#ifndef SOLARIS2 > s = ap_slack(s, AP_SLACK_HIGH); >+#endif > > note_cleanups_for_fd(pconf, s); /* arrange to close on exec or restart */ > > > > --=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-- "Why not?" - TL brian@organic.com - hyperreal.org - apache.org