#37422 [Asn->Fbk]: FastCGI: comm with server .. aborted
| From: | dmitry@php.net | Date: | Mon, 15 May 2006 11:03:42 +0000 |
| Subject: | #37422 [Asn->Fbk]: FastCGI: comm with server .. aborted | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-97105@lists.php.net to get a copy of this message | ||
ID: 37422
Updated by: dmitry@php.net
Reported By: phpbugs at thequod dot de
-Status: Assigned
+Status: Feedback
Bug Type: CGI related
Operating System: Ubuntu Linux
PHP Version: 5.1.5CVS
Assigned To: dmitry
New Comment:
the behavior of PHP_FCGI_CHILDREN was changed about year ago. If it is
not set then main PHP process doesn't fork worker processes but serve
FastCGI requests by itself.
I cannot reproduce the problem with PHP_FCGI_CHILDREN is set, but it
well reproducable without PHP_FCGI_CHILDREN.
BTW I can reproduce the same problem with mod_fastcgi and PHP-5.0, and
cannot reproduce with PHP-5.1.4 and zend_enabler. So I assume this is
mod_fastcgi bug, that cannot restart PHP properly.
Previous Comments:
------------------------------------------------------------------------
[2006-05-12 19:37:53] phpbugs at thequod dot de
The test script is just <?php echo 'foo'; ?>.
------------------------------------------------------------------------
[2006-05-12 19:34:38] phpbugs at thequod dot de
Description:
------------
I'm running Apache2/mod_fastcgi/PHP5.1.5-dev (built: May
12 2006 19:46:11).
The problem is, that without setting PHP_FCGI_CHILDREN
children, PHP does not default to the documented value of
8 (no source, but often read): it does not create any
children.
This might be just a documentation issue/bug, but without
using any children, I can reproduce crashing PHP (somehow
after PHP_FCGI_MAX_REQUESTS), but also experience with
PHP_FCGI_CHILDREN set to 4!
This "bogus" report seems to be related:
http://bugs.php.net/bug.php?id=27802
Reproduce code:
---------------
In fastcgi.conf: FastCgiServer
/XXX/fcgi-scripts/XXX/php5-fcgi-starter -user phptest_codeprobe -group
phptest_codeprobe -pass-header HTTP_AUTHORIZATION -flush -idle-timeout
60
php5-fcgi-starter script:
#!/bin/sh
PHPRC="/vhosts/phptest_codeprobe/conf/php5"
export PHPRC
PHP_FCGI_MAX_REQUESTS=100
export PHP_FCGI_MAX_REQUESTS
exec /bin/php5-fcgi
1. Restart Apache
2. A php5-fcgi process gets started (without any childs)
3. ab2 -n 101 url/
4. A new php5-fcgi process gets "re-spawned"
5. ab2 -n 201 url/
6. The longest request takes 4s(!), instead of 0.004.
7. ab2 -n 301 url/
8. The php5-fcgi process disappears forever!
This only seems to be an indication, because I have one server setup
with PHP_FCGI_MAX_REQUESTS=100 and PHP_FCGI_CHILDREN=4 and it also dies
away like this (with the same entries in the server's error log).
This is since PHP 5.1.3/5.1.4..
Expected result:
----------------
Do not crash.
Actual result:
--------------
Apache error log:
FastCGI: comm with
server "/var/www/fcgi-scripts/phptest_codeprobe/php5-fcgi-starter"
aborted: idle timeout (60 sec)
FastCGI: incomplete headers (0 bytes) received from
server "/var/www/fcgi-scripts/phptest_codeprobe/php5-fcgi-starter"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37422&edit=1