|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-08-27 19:50 UTC] jonas at brachium-system dot net
Description: ------------ PHP 5.3.14 with FPM on Debian Squeze works without any problems. The PHP Version 5.3.15 / 5.3.16 and current Git branch PHP 5.3 is affected. /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/php-fpm.conf All pools are started and working, but the php5-fpm does not detach: /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/php-fpm.conf and here it hangs. ctrl +c does not work. strace tells me: Process 15949 attached - interrupt to quit futex(0x7fb923e8ce40, FUTEX_WAIT_PRIVATE, 2, NULL If I switch the configuration option "daemonize" to "no" php-fpm starts up normal and can be aborted with ctrl+c. If I copy sapi/fpm from 5.3.14 to the current php-src from git and compile it again my configuration and php-fpm works and starts normal. If I remove the USR1/USR2 handling from sapi/fpm/fpm/fpm_unix.c ( see patch ) php-fpm starts normal and detach correctly. I think (See: http://groups.google.com/group/highload-php-en/browse_thread/thread/fa6b16d533411f42) PHP 5.4 branch is also affected. PHP-FPM Configration: --------------------- [global] pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log daemonize = yes [cust-websrv] listen = /tmp/cust-webserv.socket user = www-data group = www-data pm = dynamic pm.max_children = 130 pm.start_servers = 15 pm.min_spare_servers = 5 pm.max_spare_servers = 15 pm.max_requests = 500 chdir = / env[APPLICATION_ENV] = prod [is-tracking] listen = /tmp/is-tracking.socket user = www-data group = www-data pm = dynamic pm.max_children = 130 pm.start_servers = 15 pm.min_spare_servers = 5 pm.max_spare_servers = 15 pm.max_requests = 5000 chdir = / env[APPLICATION_ENV] = prod [limesurvey] listen = /tmp/limesurvey.socket user = www-data group = www-data pm = dynamic pm.max_children = 40 pm.start_servers = 5 pm.min_spare_servers = 4 pm.max_spare_servers = 5 pm.max_requests = 500 chdir = / env[APPLICATION_ENV] = prod Actual result: -------------- strace, with the problem: open("/var/log/php5-fpm.log", O_WRONLY|O_CREAT|O_APPEND, 0600) = 3 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 stat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 geteuid() rt_sigaction(SIGUSR1, {0x858300, ~[RTMIN RT_1], SA_RESTORER, 0x7fb98d4b5230}, {0x84ad50, [], SA_RESTORER, 0x7fb98d4b5230}, 8) = 0 rt_sigaction(SIGUSR2, {0x8582f0, ~[RTMIN RT_1], SA_RESTORER, 0x7fb98d4b5230}, {SIG_DFL, [], 0}, 8) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fb990b0da10) = 4037 --- SIGUSR1 (User defined signal 1) @ 0 (0) --- futex(0x7fb98d7e0e40, FUTEX_WAIT_PRIVATE, 2, NULL Patchesremove_usr1_usr2_fpm_unix.patch (last revision 2012-08-27 19:51 UTC by jonas at brachium-system dot net)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 14:00:01 2025 UTC |
Fixed on Debian Squeez via adding to fastcgi params: fastcgi_buffer_size 16k; fastcgi_buffers 4 16k;I can reproduce this problem with php 5.3.16 on SLES 11.2 x86_64 (after about 20 attempts on average), but not on Ubuntu 12.04.1 x86_64 or Centos (RHEL) 6.3 (no problem after more than 2000 restarts each). remove_usr1_usr2_fpm_unix.patch reliably fixes this problem for me. gdb backtraces of the hanging process always look like this (taken on opensuse 11 i386): #0 0xffffe424 in __kernel_vsyscall () #1 0xb4fe3e53 in __lll_lock_wait_private () from /lib/libc.so.6 #2 0xb4f762fb in _L_lock_10372 () from /lib/libc.so.6 #3 0xb4f74a66 in free () from /lib/libc.so.6 #4 0xb42fcd66 in pcrecpp::RE::Cleanup() () from /usr/lib/libpcrecpp.so.0 #5 0xb42fce02 in pcrecpp::RE::~RE() () from /usr/lib/libpcrecpp.so.0 #6 0xb4f3089f in __run_exit_handlers () from /lib/libc.so.6 #7 0xb4f308fd in exit () from /lib/libc.so.6 #8 0x084c382f in fpm_signals_sighandler_exit_ok (pid=10) at build/src/external/php-5.3.16/sapi/fpm/fpm/fpm_signals.c:254 #9 <signal handler called> #10 0xb4f70701 in _int_free () from /lib/libc.so.6 #11 0xb4f74a6d in free () from /lib/libc.so.6 #12 0x08426de0 in zend_hash_destroy (ht=0x891088c) at build/src/external/php-5.3.16/Zend/zend_hash.c:532 #13 0x08404762 in destroy_zend_class (pce=0x8911cb4) at build/src/external/php-5.3.16/Zend/zend_opcode.c:206 #14 0x08426dc8 in zend_hash_destroy (ht=0x87aa490) at build/src/external/php-5.3.16/Zend/zend_hash.c:529 #15 0x08414ed7 in zend_shutdown () at build/src/external/php-5.3.16/Zend/zend.c:762 #16 0x083a84da in php_module_shutdown () at build/src/external/php-5.3.16/main/main.c:2210 #17 0x084bf608 in fpm_php_cleanup (which=2, arg=0x0) at build/src/external/php-5.3.16/sapi/fpm/fpm/fpm_php.c:199 #18 0x084b5f0c in fpm_cleanups_run (type=2) at build/src/external/php-5.3.16/sapi/fpm/fpm/fpm_cleanup.c:45 #19 0x084c6c73 in fpm_unix_init_main () at build/src/external/php-5.3.16/sapi/fpm/fpm/fpm_unix.c:340 #20 0x084b4fe8 in fpm_init (argc=3, argv=0xbffb2fe4, config=0xbffb50a5 "conf/php-fpm.conf", prefix=0x0, pid=0x0, test_conf=0, run_as_root=0) at build/src/external/php-5.3.16/sapi/fpm/fpm/fpm.c:59 #21 0x084be0f5 in main (argc=3, argv=0xbffb2fe4) at build/src/external/php-5.3.16/sapi/fpm/fpm/fpm_main.c:1805Upgraded to PHP v5.4.7 but the issue remains: [root@dev01 ~]# service php-fpm stop Stopping php-fpm: [ OK ] [root@dev01 ~]# ps aux | grep php root 10912 0.0 0.0 103244 840 pts/0 S+ 09:45 0:00 grep php [root@dev01 ~]# service php-fpm start Starting php-fpm: /bin/bash: line 1: 10923 Segmentation fault (core dumped) php-fpm [FAILED] [root@dev01 ~]# ps aux | grep php root 10924 0.0 0.1 516912 5096 ? Ss 09:45 0:00 php-fpm: master process (/etc/php-fpm.conf) nginx 10926 0.0 0.1 516912 4256 ? S 09:45 0:00 php-fpm: pool www nginx 10927 0.0 0.1 516912 4256 ? S 09:45 0:00 php-fpm: pool www nginx 10928 0.0 0.1 516912 4256 ? S 09:45 0:00 php-fpm: pool www nginx 10929 0.0 0.1 516912 4256 ? S 09:45 0:00 php-fpm: pool www nginx 10930 0.0 0.1 516912 4256 ? S 09:45 0:00 php-fpm: pool www /var/log/messages: Sep 13 09:45:51 dev01 kernel: php-fpm[10923]: segfault at 3b25051598 ip 0000003b1ca0eb83 sp 00007fffe9cace00 error 4 in ld-2.12.so[3b1ca00000+20000] Sep 13 09:45:51 dev01 abrt[10925]: Saved core dump of pid 10923 (/usr/sbin/php-fpm) to /var/spool/abrt/ccpp-2012-09-13-09:45:51-10923 (5709824 bytes) Sep 13 09:45:51 dev01 abrtd: Directory 'ccpp-2012-09-13-09:45:51-10923' creation detected Sep 13 09:45:51 dev01 abrtd: Package 'php-fpm' isn't signed with proper key Sep 13 09:45:51 dev01 abrtd: 'post-create' on '/var/spool/abrt/ccpp-2012-09-13-09:45:51-10923' exited with 1 Sep 13 09:45:51 dev01 abrtd: Corrupted or bad directory /var/spool/abrt/ccpp-2012-09-13-09:45:51-10923, deleting