#50265 [Fbk->Opn]: endless loop waiting for child process
| From: | mg at fork dot pl | Date: | Wed, 25 Nov 2009 23:04:01 +0000 |
| Subject: | #50265 [Fbk->Opn]: endless loop waiting for child process | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-145085@lists.php.net to get a copy of this message | ||
ID: 50265
User updated by: mg at fork dot pl
Reported By: mg at fork dot pl
-Status: Feedback
+Status: Open
Bug Type: CGI related
Operating System: Linux
PHP Version: 5.2.11
New Comment:
The problem happens where there's NO child process (wait4 returns -1
with errno set to ECHILD).
It looks like child mysteriously vanished between fork() and wait().
Unfortunately I cannot easily reproduce the problem so we're still
waiting for this to happen.
I think it may be important that called php script uses exec() to call
some utilities.
Previous Comments:
------------------------------------------------------------------------
[2009-11-25 13:17:12] jani@php.net
Well, that means the child is running and this process is the main
process waiting it to terminate. So is that child in endless loop or
what? And if it is, why? That's the real problem here..
------------------------------------------------------------------------
[2009-11-24 22:00:17] mg at fork dot pl
My previous comment shows state BEFORE the problem hits. Many "forking"
messages are because of low MAX_REQUEST limit.
When I attached to the process running inside the endless loop (it was
before recompilation with DEBUG_FASTCGI) I got following bt
#0 0xffffe424 in __kernel_vsyscall ()
#1 0xb712fc6d in __libc_wait (stat_loc=0xbff2d2a4)
at ../sysdeps/unix/sysv/linux/wait.c:32
#2 0x0845e720 in main (argc=0, argv=Cannot access memory at address
0x4
) at
/usr/src/debug/dev-lang/php-5.2.11/php-5.2.11/sapi/cgi/cgi_main.c:1632
------------------------------------------------------------------------
[2009-11-24 20:20:27] jani@php.net
1 child is in endless loop or what? Try attach to such process with gdb
and see what the backtrace says.
------------------------------------------------------------------------
[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] jani@php.net
Try enable fastcgi debugging with DEBUG_FASTCGI when you compile PHP
and provide the log of the failing run.
------------------------------------------------------------------------
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/50265
--
Edit this bug report at http://bugs.php.net/?id=50265&edit=1