Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 38860 invoked from network); 5 Sep 2003 11:24:34 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 5 Sep 2003 11:24:34 -0000 Received: (qmail 99306 invoked by uid 500); 5 Sep 2003 11:24:17 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 99231 invoked by uid 500); 5 Sep 2003 11:24:16 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 99193 invoked from network); 5 Sep 2003 11:24:15 -0000 Received: from unknown (HELO over.ny.us.ibm.com) (32.97.182.111) by daedalus.apache.org with SMTP; 5 Sep 2003 11:24:15 -0000 Received: from e35.co.us.ibm.com (e35.esmtp.ibm.com [9.14.4.133]) by pokfb.esmtp.ibm.com (8.12.9/8.12.2) with ESMTP id h85BHaYE419444 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK) for ; Fri, 5 Sep 2003 07:17:36 -0400 Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e35.co.us.ibm.com (8.12.9/8.12.2) with ESMTP id h85BG5s5455178; Fri, 5 Sep 2003 07:16:05 -0400 Received: from attglobal.net (d03av02.boulder.ibm.com [9.17.193.82]) by westrelay04.boulder.ibm.com (8.12.9/NCO/VER6.6) with ESMTP id h85BG4i3110242; Fri, 5 Sep 2003 05:16:04 -0600 Message-ID: <3F58706D.7020205@attglobal.net> Date: Fri, 05 Sep 2003 07:15:57 -0400 From: Jeff Trawick Reply-To: trawick@attglobal.net User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Richard L Jackson Jr CC: dev@httpd.apache.org Subject: Re: 1.3.28 alloc.c patch to CVS tree not working References: <200309041859.OAA10488@portal.gmu.edu> In-Reply-To: <200309041859.OAA10488@portal.gmu.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N I didn't work up or commit that exact patch; I just noticed that a patch was finally committed so I closed the PR. But I plead guilty to sharing some of the thoughts behind the part of the patch that may be failing on your box. The issue with Ralf's patch, which is perhaps unavoidable in a portable manner, is that it always waits at least a tiny amount of time even if the process has already exited. We wanted to avoid that, but to do so we relied on a behavior that has turned out to be unportable, failing on at least Tru64 and Mac OS X. From your notes, it looks like you properly built in the changes. I'll update the bugzilla entry with your report of failure on Tru64. The code will be fixed before long. And thanks for trying it out. You may wish to look over the latest comments to the PR at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21737 Take care, Jeff Richard Jackson wrote: > Jeff Trawick, > > I applied and tested the patch you checked in 9/2/2003 > > diff -c alloc.c.20030904 alloc.c.20030904a > *** alloc.c.20030904 Thu Sep 4 12:10:42 2003 > --- alloc.c.20030904a Thu Sep 4 12:12:37 2003 > *************** > *** 3096,3107 **** > if ((p->kill_how == kill_after_timeout) > || (p->kill_how == kill_only_once)) { > /* Subprocess may be dead already. Only need the timeout if not. */ > ! if (ap_os_kill(p->pid, SIGTERM) == -1) { > p->kill_how = kill_never; > ! } > ! else { > need_timeout = 1; > - } > } > else if (p->kill_how == kill_always) { > kill(p->pid, SIGKILL); > --- 3096,3105 ---- > if ((p->kill_how == kill_after_timeout) > || (p->kill_how == kill_only_once)) { > /* Subprocess may be dead already. Only need the timeout if not. */ > ! if ( (ap_os_kill(p->pid, SIGTERM) == -1) && (errno == ESRCH) ) > p->kill_how = kill_never; > ! else > need_timeout = 1; > } > else if (p->kill_how == kill_always) { > kill(p->pid, SIGKILL); > > Still left defunct processes on our Tru64 UNIX 5.1A system. I assume after > changing the alloc.c file, performing a make and copy httpd into place is > sufficient... > > . cd /usr/local/src/apache_1.3.28 > . cp -p src/main/alloc.c src/main/alloc.c.20030904 > . modify src/main/alloc.c > . make >& make.log2 & > . strip src/httpd > . cp -p src/httpd /usr/local/apache/bin/httpd.new > . cd /usr/local/apache/bin > . (mv httpd httpd.20030904;mv httpd.new httpd) > . /sbin/init.d/https-apache stop > . /sbin/init.d/https-apache start > > Since the above patch did not work, I tried the patch suggested by Ralf > Engelschall, > http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105952652425849&w=2 > > diff -c alloc.c.20030904 alloc.c > *** alloc.c.20030904 Thu Sep 4 12:10:42 2003 > --- alloc.c Thu Sep 4 14:22:35 2003 > *************** > *** 3096,3107 **** > if ((p->kill_how == kill_after_timeout) > || (p->kill_how == kill_only_once)) { > /* Subprocess may be dead already. Only need the timeout if not. */ > ! if (ap_os_kill(p->pid, SIGTERM) == -1) { > ! p->kill_how = kill_never; > ! } > ! else { > ! need_timeout = 1; > ! } > } > else if (p->kill_how == kill_always) { > kill(p->pid, SIGKILL); > --- 3096,3103 ---- > if ((p->kill_how == kill_after_timeout) > || (p->kill_how == kill_only_once)) { > /* Subprocess may be dead already. Only need the timeout if not. */ > ! ap_os_kill(p->pid, SIGTERM); > ! need_timeout = 1; > } > else if (p->kill_how == kill_always) { > kill(p->pid, SIGKILL); > > Since I have been using Ralf's patch, I have not had a single defunct process. >