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

 ID:                 53412
 Updated by:         f...@php.net
 Reported by:        php-bugs at thequod dot de
 Summary:            php-fpm children constantly exiting (immediately)
-Status:             Assigned
+Status:             Feedback
 Type:               Bug
 Package:            FPM related
 Operating System:   Linux
 PHP Version:        5.3SVN-2010-11-26 (snap)
 Assigned To:        fat
 Block user comment: N
 Private report:     N

 New Comment:

You can :





# gdb ./sapi/fpm/php-fpm

(gdb) set follow-fork-mode child

(gdb) break exit

Function "exit" not defined.

Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (exit) pending.

(gdb) run

...

(gdb) bt


Previous Comments:
------------------------------------------------------------------------
[2010-11-29 23:17:21] php-bugs at thequod dot de

Don't you see a possibility to attach gdb to the child process to see
where it is exiting?

What does exit code 1 refer to? Generic error?

Does it make sense to use specific exit codes for reference?

Where should I to start with adding debug output?



FWIW, this happens both with the Ubuntu package (available at
https://launchpad.net/ubuntu/+source/php5/5.3.3-1ubuntu9.1/+build/2003382
if you like to try reproducing it from there) and the package updated
using the source from the snapshot(s); I have not tried it unpatched.
However, there does not appear to be a fpm specific patch (apart from
config handling).

My packages are available from here:
https://launchpad.net/~blueyed/+archive/ppa/+packages

------------------------------------------------------------------------
[2010-11-29 23:17:08] php-bugs at thequod dot de

Don't you see a possibility to attach gdb to the child process to see
where it is exiting?

What does exit code 1 refer to? Generic error?

Does it make sense to use specific exit codes for reference?

Where should I to start with adding debug output?



FWIW, this happens both with the Ubuntu package (available at
https://launchpad.net/ubuntu/+source/php5/5.3.3-1ubuntu9.1/+build/2003382
if you like to try reproducing it from there) and the package updated
using the source from the snapshot(s); I have not tried it unpatched.
However, there does not appear to be a fpm specific patch (apart from
config handling).

My packages are available from here:
https://launchpad.net/~blueyed/+archive/ppa/+packages

------------------------------------------------------------------------
[2010-11-29 22:08:56] f...@php.net

OK, children forks correctely. There is a problem somewhere after
fork().



What you can do (as I can't reproduice the problem and I don't have
access to a 

server which has the same problem):



set only one pool with :

log_level = debug

pm = static

pm.max_children = 1



insert a log trace in the source code step by step to determine where
the bug 

comes from.



I'm sorry not to be able to help you more.

------------------------------------------------------------------------
[2010-11-29 21:50:23] php-bugs at thequod dot de

It looks like this:



Nov 29 21:47:59.518416 [DEBUG] pid 29191, fpm_children_make(), line 377:
pid after fork=30301

Nov 29 21:47:59.518440 [NOTICE] pid 29191, fpm_children_make(), line
400: [pool www] child 30301 started

Nov 29 21:47:59.518451 [DEBUG] pid 30301, fpm_children_make(), line 377:
pid after fork=0

Nov 29 21:47:59.518981 [DEBUG] pid 29191, fpm_got_signal(), line 75:
received SIGCHLD

Nov 29 21:47:59.518995 [WARNING] pid 29191, fpm_children_bury(), line
249: [pool www] child 30301 exited with code 1 after 0.000562 seconds
from start

------------------------------------------------------------------------
[2010-11-29 14:50:58] f...@php.net

Sorry, there is no backtrace with sigfault as there is no segfault ...



Can you patch fpm_children.c like this:





Index: fpm_children.c

===================================================================

--- fpm_children.c      (révision 305775)

+++ fpm_children.c      (copie de travail)

@@ -374,6 +374,7 @@

                }



                pid = fork();

+zlog(ZLOG_DEBUG, "pid after fork=%d", pid);



                switch (pid) {



and test again (daemonize=no; log_level=debug)



send here your log file content.

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


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/bug.php?id=53412


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

Reply via email to