From apwww@hyperreal.org Fri Aug 8 07:56:30 1997 Received: (from apwww@localhost) by hyperreal.org (8.8.5/8.8.5) id HAA05827; Fri, 8 Aug 1997 07:56:30 -0700 (PDT) Message-Id: <199708081456.HAA05827@hyperreal.org> Date: Fri, 8 Aug 1997 07:56:30 -0700 (PDT) From: Mike Whitaker Reply-To: mike@cricket.org To: apbugs@hyperreal.org Subject: PR 588 not fixed under Linux 2.0.30 kernel X-Send-Pr-Version: 3.2 >Number: 987 >Category: os-linux >Synopsis: PR 588 not fixed under Linux 2.0.30 kernel >Confidential: no >Severity: serious >Priority: medium >Responsible: apache >State: closed >Class: sw-bug >Submitter-Id: apache >Arrival-Date: Mon Aug 11 09:00:07 1997 >Originator: mike@cricket.org >Organization: >Release: 1.2.1 >Environment: Linux cricinfo 2.0.30 #1 Sun Jun 1 09:14:11 EST 1997 i586 unknown P100, 64MB RAM, NE2000 clone Ethernet >Description: One httpd occasionally goes into a tight loop, logging select: (listen) bad address Server is under considerable load (maxed out on 120 servers). strace output of the offending httpd: oldselect(25, [15 16 17 18 19 20 21 22 23 24], NULL, NULL, NULL) = -1 EFAULT (Bad address) time(NULL) = 871049640 write(27, "[Fri Aug 8 15:14:00 1997] selec"..., 57) = 57 >How-To-Repeat: Difficult to say. I'm more than willing to co-operate on detection/further analysis. >Fix: No >Audit-Trail: From: Dean Gaudet To: Mike Whitaker Subject: Re: os-linux/987: PR 588 not fixed under Linux 2.0.30 kernel Date: Thu, 14 Aug 1997 23:54:05 -0700 (PDT) Any chance you want to try out the 2.0.31-pre6 kernel? Linus is going to roll 2.0.31 final this weekend so you could just wait until next week. Can you reproduce this problem at will? If so it would be nice to find out if it's something that's apache's fault or if it's something that's the kernel's fault. I really suspect the kernel. Dean From: Mike Whitaker To: "Dean Gaudet" Subject: Re: os-linux/987: PR 588 not fixed under Linux 2.0.30 kernel Date: Fri, 15 Aug 97 08:23:17 +0100 On 15/08/1997 7:54 am, Dean Gaudet said: >Any chance you want to try out the 2.0.31-pre6 kernel? Linus is going to >roll 2.0.31 final this weekend so you could just wait until next week. Not for a week or more: I already upgraded to 2.0.30 in the light of PR 588! BTW - something to note with 2.0.30 under Debian is they chose (curse 'em) to make their default kernel with SYN and RST cookies on: great way to make a webserver thrash as it swaps klogd/syslogd in and out to log them. >Can you reproduce this problem at will? If 'fire up Apache, wait a while' counts as 'at will', yes (*wry grin*). It seems to be load related, but that could just be a case of 'more connections, more likelihood of it happening'. >If so it would be nice to find >out if it's something that's apache's fault or if it's something that's >the kernel's fault. I really suspect the kernel. So do I, to be honest: -- Mike Whitaker, Technical Manager, CricInfo Ltd (http://www.cricket.org) Phone: +44 1733 766619 (work/fax) +44 1733 894928 (home) +44 976 271866 (mobile) Email: mike@cricket.org (work) mike@altrion.org (home) State-Changed-From-To: open-closed State-Changed-By: dgaudet State-Changed-When: Wed Sep 24 23:56:56 PDT 1997 State-Changed-Why: Fixed in 1.2.5 source. Dean From: Dean Gaudet To: mike@cricket.org Subject: os-linux/987: PR 588 not fixed under Linux 2.0.30 kernel Date: Wed, 24 Sep 1997 23:56:31 -0700 (PDT) The following patch was applied to the code to work around this problem. Dean ---------- Forwarded message ---------- Date: Mon, 22 Sep 1997 14:55:32 -0700 (PDT) From: Dean Gaudet 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 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 ] 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; >Unformatted: >Last-Modified: Wed Sep 24 23:56:57 PDT 1997