ID:               37422
 User updated by:  phpbugs at thequod dot de
 Reported By:      phpbugs at thequod dot de
 Status:           Open
 Bug Type:         CGI related
 Operating System: Ubuntu Linux
 PHP Version:      5.1.5CVS
 Assigned To:      dmitry
 New Comment:

Here is a backtrace of a process running without 
PHP_FCGI_CHILDREN and PHP_FCGI_MAX_REQUESTS being set (so 
there's only one instance):

#0  0xb7802d2c in recv () from /lib/tls/libc.so.6
#1  0x0837cf99 in fcgi_finish_request (req=0xbff29d94) 
at /home/XXX/cvs/php/php51dev/sapi/cgi/fastcgi.c:620
#2  0x0837d760 in fcgi_accept_request (req=0xbff29d94) 
at /home/XXX/cvs/php/php51dev/sapi/cgi/fastcgi.c:633
#3  0x0837ee7c in main (argc=1, argv=0xbff2c464) 
at /home/XXX/cvs/php/php51dev/sapi/cgi/cgi_main.c:1333

It seems to hang there around for a while and all requests 
that arrive get an idle timeout error.

This is PHP 5.1.5-dev (cgi-fcgi) (built: May 29 2006 
01:33:02) (DEBUG).

It appears to be just a overload on the server/number of 
simulatneous requests, as I can reproduce it with
ab2 -n PHP_FCGI_CHILDREN+1 -c PHP_FCGI_CHILDREN+1 
www.site/
and a script that does "sleep( timeout + 1 );".

But I've never seen those errors before 5.1.3-dev and 
therefor cannot really believe that this is the only 
cause.


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

[2006-05-17 18:56:34] phpbugs at thequod dot de

Sidenote: The cause for the "read failed" error was due to 
the exhausted memory_limit, see 
http://bugs.php.net/?id=37481

Still, there's the "idle timeout" error (when using 
PHP_FCGI_CHILDREN=4 and MAX_REQUEST=100).

It does not seem related to the "read failed"/memory_limit 
(e.g. memory leak because of it), at least I think so 
after triggering "memory exhausted" errors.

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

[2006-05-17 17:00:39] phpbugs at thequod dot de

I see at least three bugs here:
 - documentation is wrong (default values)
 - reproducable crash
 - occassional errors like:
[Wed May 17 18:34:35 2006] [error] [client 88.247.169.170] 
(104)Connection reset by peer: FastCGI: comm with 
server "/var/www/XXX/php5-fcgi-starter" aborted: read 
failed
[Wed May 17 18:34:35 2006] [error] [client 88.247.169.170] 
FastCGI: incomplete headers (0 bytes) received from 
server "/var/www/XXX/php5-fcgi-starter"

and

[Wed May 17 18:34:20 2006] [error] [client 72.30.111.157] 
FastCGI: comm with server "/var/www/XXX/php5-fcgi-starter" 
aborted: idle timeout (60 sec)
[Wed May 17 18:34:20 2006] [error] [client 72.30.111.157] 
FastCGI: incomplete headers (0 bytes) received from 
server "/var/www/XXX/php5-fcgi-starter"

after the server has been running some time..

I cannot reproduce it, though and don't know how I should 
debug it.

What's strange about all those timeout errors: 
max_execution_time is set to 30.

Since I've tested the 5.1.3 RCs, php-fastcgi is not usable 
anymore in production for me! I think I'll have to go back 
to 5.1.2 for now.

5.2-dev does not seem to have this problem (around them 
time the snapshot has been posted here), but I don't think 
it's a good idea to use it in production.

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

[2006-05-17 14:04:10] [EMAIL PROTECTED]

No Bug? Bogus. Thanks.

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

[2006-05-16 06:26:48] phpbugs at thequod dot de

The described problem, where PHP_FCGI_CHILDREN is set, seems rather to
be a PHP application problem:
I was using fsockopen on URLs, without having set a transfer timeout
through stream_set_timeout(). Therefor the FCGI process timed out on
requests to URLs, which did not respond in a given time. I've setup the
fastcgi-Server with a timeout of 60 seconds.
It seems to cause no more problems with current CVS (PHP 5.2.0-dev
(cgi-fcgi) (built: May 15 2006 22:28:11)) and probably also not with
5.1.4, which I'll re-try now.

Having "crashes" with unset PHP_FCGI_CHILDREN is bad IMHO,
nevertheless. Can it be fixed?

Can you see in my backtraces what the missing stream_set_timeout() in
my script "triggered"? I find the message "buf=0xfffffffc <Address
0xfffffffc out of bounds>, 
count=4294967292" quite "unusal".

btw: please update sapi/cgi/README.FastCGI accordingly, because it
still says that by default 8 childs get used!

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

[2006-05-15 19:56:33] [EMAIL PROTECTED]

Please try using this CVS snapshot:

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



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

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/37422

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

Reply via email to