#40286 [NoF->Opn]: PHP fastcgi with PHP_FCGI_CHILDREN don't kill children when parent is killed

From: Date: Tue, 06 May 2008 21:35:25 +0000
Subject: #40286 [NoF->Opn]: PHP fastcgi with PHP_FCGI_CHILDREN don't kill children when parent is killed
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-124769@lists.php.net to get a copy of this message
 ID:               40286
 User updated by:  gabriel at oxeva dot fr
 Reported By:      gabriel at oxeva dot fr
-Status:           No Feedback
+Status:           Open
 Bug Type:         CGI related
 Operating System: Linux 2.6
-PHP Version:      5.2.0
+PHP Version:      5.2.0+
 Assigned To:      dmitry
 New Comment:

Bug reopened as requested by jakobunt at gmail dot com
It is indeed the same bug as the one I described: my logs were the same
as yours when I was using the php forking feature.

As far as I remember, the child php processes were dropped by the
parent php process (acting as a dispatcher) because apache's fastcgi
process manager "Fastcgi PM" sent a SIGKILL signal to it (the only PID
the fastcgi PM is aware of because it spawned it). This signal is
normally only sent if the process do not exit a few seconds after being
sent a SIGTERM signal. The problem is not the parent being killed, but
the children waiting on their own loop infinitely.

I guess this bug is in the fastcgi accept loop, which leaves the php
children stalled waiting on a FD without any process attached to the
other side.


Previous Comments:
------------------------------------------------------------------------

[2008-05-06 21:08:16] jakobunt at gmail dot com

I still experience this on Ubuntu Hardy, 
PHP 5.2.4-2ubuntu5 with Suhosin-Patch 0.9.6.2 (cgi-fcgi), so this
should be reopened.

A pstree showing the orphaned processes:
http://launchpadlibrarian.net/14265483/phpkiller.log

------------------------------------------------------------------------

[2007-11-11 22:22:59] jakob dot at at gmx dot net

Workaround: Kill those lurking process regularily using a cronjob.
This works for me (Ubuntu Dapper, PHP 5.1.2 (cgi-fcgi) (built: Jul 17
2007 17:21:59) ), you probably need pkill -9 .

#/bin/bash
pkill -f -x /usr/lib/cgi-bin/php -P 1

------------------------------------------------------------------------

[2007-09-27 03:20:24] atomo64 at gmail dot com

jani@php.net:

The problem is that this bug affects Debian's PHP5 package of etch[1]
and in order to fix it the right patch is required. We can't simply
'update' the source package.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=431799

------------------------------------------------------------------------

[2007-09-14 01:00:01] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2007-09-06 11:16:16] jani@php.net

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows (zip):
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

For Windows (installer):

  http://snaps.php.net/win32/php5.2-win32-installer-latest.msi



------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/40286

-- 
Edit this bug report at http://bugs.php.net/?id=40286&edit=1



Thread (25 messages)

« previous php.bugs (#124769) next »