Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 5914 invoked from network); 4 Jun 2007 06:35:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Jun 2007 06:35:31 -0000 Received: (qmail 85634 invoked by uid 500); 4 Jun 2007 06:35:31 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 85569 invoked by uid 500); 4 Jun 2007 06:35:31 -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: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 85555 invoked by uid 99); 4 Jun 2007 06:35:31 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Jun 2007 23:35:31 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,MSGID_FROM_MTA_HEADER,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of mccreedytpf@msn.com designates 65.54.246.137 as permitted sender) Received: from [65.54.246.137] (HELO bay0-omc2-s1.bay0.hotmail.com) (65.54.246.137) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Jun 2007 23:35:25 -0700 Received: from hotmail.com ([64.4.48.16]) by bay0-omc2-s1.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.2668); Sun, 3 Jun 2007 23:35:05 -0700 Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Sun, 3 Jun 2007 23:35:05 -0700 Message-ID: Received: from 65.102.205.237 by BAY137-DAV6.phx.gbl with DAV; Mon, 04 Jun 2007 06:35:04 +0000 X-Originating-IP: [65.102.205.237] X-Originating-Email: [mccreedytpf@msn.com] X-Sender: mccreedytpf@msn.com From: "David McCreedy" To: References: <20070601154258.857511A981A@eris.apache.org> <46608FEE.2060203@apache.org> Subject: Re: svn commit: r543511 - /httpd/httpd/branches/1.3.x/src/main/http_main.c Date: Mon, 4 Jun 2007 00:35:03 -0600 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0018_01C7A640.313E4230" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: MSN 9 X-MimeOLE: Produced By MSN MimeOLE V9.50.0034.2000 Seal-Send-Time: Mon, 4 Jun 2007 00:35:03 -0600 X-OriginalArrivalTime: 04 Jun 2007 06:35:05.0010 (UTC) FILETIME=[7C96F920:01C7A672] X-Virus-Checked: Checked by ClamAV on apache.org This is a multi-part message in MIME format. ------=_NextPart_000_0018_01C7A640.313E4230 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 06/01/2007 05:42 PM, jim@apache.org wrote: > Author: jim > Date: Fri Jun 1 08:42:57 2007 > New Revision: 543511 >=20 > URL: = http://svn.apache.org/viewvc?view=3Drev&rev=3D543511 > Log: > Add in parent process PID table, to provide for > a check against the pid values located in the > scoreboard. >=20 > Modified: > httpd/httpd/branches/1.3.x/src/main/http_main.c >=20 I tried out the code in apache-1.3_20070603161656.tar.gz on TPF because = I thought the pid_table stuff might affect the platform. I found some problems in main/http_main.c on both Linux and TPF: 1) The new snprintf calls need to be changed to ap_snprintf for it to compile on TPF (and possibly other platforms without a native snprintf). 2) For both Linux and TPF, idle server maintenance can cause "Bad pid = in scoreboard slot" errors: I tied up several children with requests and then let them time out so they'd become idle. (I lowered MinSpareServers to 1 and MaxSpareServers to 3 so it was easy = to reach the limits.) This hit the kill(pid, SIG_TIMEOUT_KILL) and kill(pid, SIG_IDLE_KILL) = code in perform_idle_server_maintenance. Those same pids showed up later in "Bad pid in scoreboard slot" errors. 3) For both Linux and TPF, "Bad pid in scoreboard slot" errors can = loop: I hit this with issue #2 above but presumably you could get it on any in_pid_table error where that scoreboard slot is hit again at a later time... I got looping error messages if the idle child that initially cause the "Bad pid ..." error was the one that perform_idle_server_maintenance was trying to get rid of. An in_pid_table() error writes to the log but leaves the scoreboard slot as-is. So when we come through perform_idle_server_maintenance the next time, = the same error is logged for the same slot and pid. Again, and again. Hopefully this is enough information to recreate the issues. If I left something out please let me know. -David McCreedy ------=_NextPart_000_0018_01C7A640.313E4230 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable =EF=BB=BF
On 06/01/2007 05:42 PM, jim@apache.org wrote:
> Author: = jim
> Date: Fri Jun  1 08:42:57 2007
> New Revision:=20 543511
>
> URL: http://= svn.apache.org/viewvc?view=3Drev&rev=3D543511
>=20 Log:
> Add in parent process PID table, to provide for
> a = check=20 against the pid values located in the
> scoreboard.
> =
>=20 Modified:
>    =20 httpd/httpd/branches/1.3.x/src/main/http_main.c
>
 
I tried out the code in apache-1.3_20070603161656.tar.gz on TPF = because=20 I
thought the pid_table stuff might affect the platform.
 
I found some problems in main/http_main.c on both Linux and = TPF:
 
1)  The new snprintf calls need to be changed to ap_snprintf = for it=20 to
compile on TPF (and possibly other platforms without a native=20 snprintf).
 
2)  For both Linux and TPF, idle server maintenance can cause = "Bad pid=20 in
scoreboard slot" errors:
 
I tied up several children with requests and then let them time out = so
they'd become idle.
(I lowered MinSpareServers to 1 and = MaxSpareServers=20 to 3 so it was easy to
reach the limits.)
This hit the kill(pid,=20 SIG_TIMEOUT_KILL) and kill(pid, SIG_IDLE_KILL) code
in=20 perform_idle_server_maintenance.
Those same pids showed up later in = "Bad pid=20 in scoreboard slot" errors.
 
3)  For both Linux and TPF, "Bad pid in scoreboard slot" = errors can=20 loop:
 
I hit this with issue #2 above but presumably you could get it on=20 any
in_pid_table error where that scoreboard slot is hit again at a=20 later
time...
 
I got looping error messages if the idle child that initially cause = the
"Bad pid ..." error was the one that = perform_idle_server_maintenance=20 was
trying to get rid of.
An in_pid_table() error writes to the = log but=20 leaves the scoreboard slot
as-is.
So when we come through=20 perform_idle_server_maintenance the next time, the
same error is = logged for=20 the same slot and pid.
Again, and again.
 
Hopefully this is enough information to recreate the issues.
If = I left=20 something out please let me know.
 
-David McCreedy
------=_NextPart_000_0018_01C7A640.313E4230--