Return-Path: Delivered-To: apache-cvs-archive@hyperreal.org Received: (qmail 18766 invoked by uid 6000); 11 Nov 1997 19:52:22 -0000 Received: (qmail 18758 invoked by uid 143); 11 Nov 1997 19:52:20 -0000 Date: 11 Nov 1997 19:52:20 -0000 Message-ID: <19971111195220.18757.qmail@hyperreal.org> From: dgaudet@hyperreal.org To: apache-cvs@hyperreal.org Subject: cvs commit: apachen/src/main util.c Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org dgaudet 97/11/11 11:52:20 Modified: src CHANGES src/main util.c Log: If ap_slack fails to allocate above the low slack line it's a good indication that further problems will occur; it's a better indication than many external libraries give us when we actually run out of descriptors. So report it to the user once per restart. PR: 1181 Reviewed by: Jim Jagielski, Ken Coar Revision Changes Path 1.502 +6 -0 apachen/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apachen/src/CHANGES,v retrieving revision 1.501 retrieving revision 1.502 diff -u -r1.501 -r1.502 --- CHANGES 1997/11/09 20:40:30 1.501 +++ CHANGES 1997/11/11 19:52:16 1.502 @@ -1,5 +1,11 @@ Changes with Apache 1.3b3 + *) If ap_slack fails to allocate above the low slack line it's a good + indication that further problems will occur; it's a better indication + than many external libraries give us when we actually run out of + descriptors. So report it to the user once per restart. + [Dean Gaudet] PR#1181 + *) Change mod_include and mod_autoindex to use Y2K-safe date formats by default. [Ken Coar] 1.76 +15 -2 apachen/src/main/util.c Index: util.c =================================================================== RCS file: /export/home/cvs/apachen/src/main/util.c,v retrieving revision 1.75 retrieving revision 1.76 diff -u -r1.75 -r1.76 --- util.c 1997/10/27 16:30:30 1.75 +++ util.c 1997/11/11 19:52:19 1.76 @@ -66,9 +66,7 @@ #include "httpd.h" #include "http_conf_globals.h" /* for user_id & group_id */ -#if defined(DEBUG)||defined(DEBUG_CFG_LINES) #include "http_log.h" -#endif #include const char month_snames[12][4] = @@ -1620,6 +1618,7 @@ #if !defined(F_DUPFD) return fd; #else + static int low_warned; int new_fd; #ifdef HIGH_SLACK_LINE @@ -1637,6 +1636,20 @@ } new_fd = fcntl(fd, F_DUPFD, LOW_SLACK_LINE); if (new_fd == -1) { + if (!low_warned) { + /* Give them a warning here, because we really can't predict + * how libraries and such are going to fail. If we can't + * do this F_DUPFD there's a good chance that apache has too + * few descriptors available to it. Note we don't warn on + * the high line, because if it fails we'll eventually try + * the low line... + */ + aplog_error(APLOG_MARK, APLOG_ERR, NULL, + "unable to open a file descriptor above %u, " + "you may need to increase the number of descriptors", + LOW_SLACK_LINE); + low_warned = 1; + } return fd; } close(fd);