ID:               50265
 Updated by:       [email protected]
 Reported By:      mg at fork dot pl
-Status:           Open
+Status:           Feedback
 Bug Type:         CGI related
 Operating System: Linux
 PHP Version:      5.2.11
 New Comment:

1 child is in endless loop or what? Try attach to such process with gdb
and see what the backtrace says.


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

[2009-11-24 03:02:09] mg at fork dot pl

I rebuilt php and started up, but as I don't know what exactly causes
the problem we'll have to wait until it happens...

I started it like
% PHP_FCGI_CHILDREN=2 PHP_FCGI_MAX_REQUESTS=100 php-cgi -e -b
127.0.0.1:30004 -c /.../php.ini

Process group 2720
Forking, 0 running
Forking, 1 running
Wait for kids, pid 2720
Forking, 1 running
Wait for kids, pid 2720
Forking, 1 running
Wait for kids, pid 2720
Forking, 1 running
Wait for kids, pid 2720


pstree -uap shows

`-php-cgi,2720 -e -b 127.0.0.1:30004 -c /.../php.ini
  |-php-cgi,13821 -e -b 127.0.0.1:30004 -c /.../php.ini
  `-php-cgi,13822 -e -b 127.0.0.1:30004 -c /.../php.ini

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

[2009-11-23 10:16:14] [email protected]

Try enable fastcgi debugging with DEBUG_FASTCGI when you compile PHP
and provide the log of the failing run.

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

[2009-11-23 02:24:21] mg at fork dot pl

Description:
------------
fast-cgi php process loops forever during wait()ing for child process
while there's no more child processes. 

Actual result:
--------------
in cgi_main.c there's loop:

1631                 while (1) {
1632                     if (wait(&status) >= 0) {
1633                         running--;
1634                         break;
1635                     } else if (exit_signal) {
1636                         break;
1637                     }
1638                 }

wait returns -1 as strace shows:

wait4(-1, 0xbff2d2a4, 0, NULL)          = -1 ECHILD (No child
processes)

and loop never breaks (as apparently exit_signal is set to 0).


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


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

Reply via email to