You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Dean Gaudet <dg...@arctic.org> on 1997/09/25 09:00:06 UTC

os-linux/588: "select: (listen): Bad address" quickly repeats to errors.log until disk full.

The following reply was made to PR os-linux/588; it has been noted by GNATS.

From: Dean Gaudet <dg...@arctic.org>
To: root@enet.ru
Subject: os-linux/588: "select: (listen): Bad address" quickly repeats to errors.log until disk full.
Date: Wed, 24 Sep 1997 23:58:17 -0700 (PDT)

 
 The following patch was committed to the code to work around this problem.
 
 Dean
 
 ---------- Forwarded message ----------
 Date: Mon, 22 Sep 1997 14:55:32 -0700 (PDT)
 From: Dean Gaudet <dg...@hyperreal.org>
 Reply-To: new-httpd@apache.org
 To: apache-cvs@hyperreal.org
 Subject: cvs commit: apache/src CHANGES http_main.c
 
 dgaudet     97/09/22 14:55:30
 
   Modified:    src      Tag: APACHE_1_2_X CHANGES http_main.c
   Log:
   Defend against linux EFAULT infinite loop on select().
   
   PR:		1107
   Submitted by:	Rick Franchuk <ri...@transpect.net>
   Reviewed by:	Dean Gaudet, Marc Slemko, Roy Fielding
   
   Revision  Changes    Path
   No                   revision
   
   
   No                   revision
   
   
   1.286.2.53 +5 -0      apache/src/CHANGES
   
   Index: CHANGES
   ===================================================================
   RCS file: /export/home/cvs/apache/src/CHANGES,v
   retrieving revision 1.286.2.52
   retrieving revision 1.286.2.53
   diff -u -r1.286.2.52 -r1.286.2.53
   --- CHANGES	1997/08/21 22:56:18	1.286.2.52
   +++ CHANGES	1997/09/22 21:55:23	1.286.2.53
   @@ -1,3 +1,8 @@
   +Changes with Apache 1.2.5
   +
   +  *) Work around problem under Linux where a child will start looping
   +     reporting a select error over and over.
   +     [Rick Franchuk <ri...@transpect.net>] PR#1107
    
    Changes with Apache 1.2.4
    
   
   
   
   1.149.2.9 +9 -1      apache/src/http_main.c
   
   Index: http_main.c
   ===================================================================
   RCS file: /export/home/cvs/apache/src/http_main.c,v
   retrieving revision 1.149.2.8
   retrieving revision 1.149.2.9
   diff -u -r1.149.2.8 -r1.149.2.9
   --- http_main.c	1997/08/15 17:29:50	1.149.2.8
   +++ http_main.c	1997/09/22 21:55:25	1.149.2.9
   @@ -1776,8 +1776,16 @@
                    exit(0);
    
                errno = errsave;
   -            if (srv < 0 && errno != EINTR)
   +            if (srv < 0 && errno != EINTR) {
   +#ifdef LINUX
   +		if (errno == EFAULT) {
   +		    log_unixerr("select", "(listen) fatal, exiting",
   +				NULL, server_conf);
   +		    exit(1);
   +		}
   +#endif
                    log_unixerr("select", "(listen)", NULL, server_conf);
   +	    }
    
                if (srv <= 0)
                    continue;