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 <stdio.h>
   
   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);
  
  
  

Reply via email to