Received: by taz.hyperreal.com (8.8.3/V2.0) id RAA23030; Wed, 11 Dec 1996 17:50:36 -0800 (PST) Received: from sierra.zyzzyva.com by taz.hyperreal.com (8.8.3/V2.0) with ESMTP id RAA22985; Wed, 11 Dec 1996 17:49:57 -0800 (PST) Received: from sierra.zyzzyva.com (localhost [127.0.0.1]) by sierra.zyzzyva.com (8.8.2/8.8.2) with ESMTP id TAA01844 for ; Wed, 11 Dec 1996 19:50:51 -0600 (CST) Message-Id: <199612120150.TAA01844@sierra.zyzzyva.com> Date: Wed, 11 Dec 1996 19:49:44 -0600 From: Randy Terbush Subject: Re: WWW Form Bug Report: "server hangs frequently" on NeXT (fwd) Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@hyperreal.com ------- Blind-Carbon-Copy To: gtf@cirp.org Subject: Re: WWW Form Bug Report: "server hangs frequently" on NeXT (fwd) In-reply-to: robh's message of Thu, 12 Dec 1996 00:56:31 +0000. <199612120056.AAA08257> X-uri: http://www.zyzzyva.com/ Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 11 Dec 1996 19:49:44 -0600 From: Randy Terbush Geoffry, Looks like the waitpid() that Apache is supplying may not be sophisticated enough to be used in this new code. You might try changing the #if at L967 of http_main.c to 0, or at the very least, pull the wait_or_timeout() function out of the section below. This looks like some of Ben's code. Perhaps he could comment on it. I quickly glanced at the FreeBSD code to see if I could find a better waitpid() but struck out. > ----- Forwarded message from Geoffrey T. Falk ----- > > Message-Id: <199612120007.TAA01218@theorem.math.rochester.edu> > Content-Type: text/plain > MIME-Version: 1.0 (NeXT Mail 3.3 v118.2) > From: "Geoffrey T. Falk" > Date: Wed, 11 Dec 96 19:07:57 -0500 > To: Rob Hartill > Subject: Re: WWW Form Bug Report: "server hangs frequently" on NeXT > References: <199612110258.CAA16340> > > Rob, > > This relates to my earlier bug report. I have made some more progress in > analyzing the problem. > > The child processes seem to be dying. When they are all dead, the server > cannot respond to requests. > > According to GDB, the parent process gets stuck in a loop, in the function > wait_or_timeout(). It is waiting for a valid return value from waitpid() > (file http_main.c line 973). However this keeps returning -1, even if there > are connection requests. I looked at the code for waitpid() in util.c. It is > returning failure because there are no children left. > > I have no idea why the children are dying off. As a workaround, I have > written a program to periodically check to see if the server is responding; > and if not, send it a HUP. (Graceful restarts have their own problems). > > I am not compiling with any unusual options except -DNEXT. > > Please help me fix this bug. It is a critical problem. > > Thanks > g. > > ----- End of forwarded message from Geoffrey T. Falk ----- > > -- > Rob Hartill. Internet Movie Database Ltd. http://www.imdb.com/ ------- End of Blind-Carbon-Copy