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

 ID:                 62954
 Comment by:         david at appliedautonomics dot com
 Reported by:        jonas at brachium-system dot net
 Summary:            startup problems fpm / php-fpm
 Status:             Feedback
 Type:               Bug
 Package:            FPM related
 Operating System:   Linux
 PHP Version:        5.3Git-2012-08-27 (Git)
 Assigned To:        fat
 Block user comment: N
 Private report:     N

 New Comment:

Fixed on Debian Squeez via adding to fastcgi params:

        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;


Previous Comments:
------------------------------------------------------------------------
[2012-09-02 16:43:24] per at techspot dot com

This bug occurs more frequently on heavily loaded websites.
On my testserver it is difficult to reproduce with a low load.
But on my live server doing a "service php-fpm restart" makes it fail most 
times.

For some reason the problem occurs less frequently in php-fpm 5.4.6 vs 5.3.16
opcode cachers also makes it occur more frequently, but it's possible to 
reproduce with no opcode cacher loaded aswell, same rules as above for 
frequency still apply (5.3 vs 5.4)
Output from testserver below running CentOS v6.3 with all patches applied and 
php v5.4 via the remi repository: 
http://rpms.famillecollet.com/enterprise/6/test/x86_64/

# php -v
PHP 5.4.6 (cli) (built: Aug 16 2012 14:26:39)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
    with XCache v2.0.1, Copyright (c) 2005-2012, by mOo

# DAEMON_COREFILE_LIMIT=unlimited strace -s1024 -f /etc/init.d/php-fpm restart 
2>&1 | grep -i SEGV

[pid  3017] rt_sigaction(SIGSEGV, {0x7fddd5050730, [SEGV], 
SA_RESTORER|SA_RESTART, 0x7fdddb55a920}, {SIG_DFL, [], 0}, 8) = 0
[pid  3017] rt_sigaction(SIGSEGV, {SIG_DFL, [SEGV], SA_RESTORER|SA_RESTART, 
0x7fdddb55a920},  <unfinished ...>
[pid  3017] <... rt_sigaction resumed> {0x7fddd5050730, [SEGV], 
SA_RESTORER|SA_RESTART, 0x7fdddb55a920}, 8) = 0

------------------------------------------------------------------------
[2012-09-02 09:07:29] jonas at brachium-system dot net

PHP 5.3.16-dev (fpm-fcgi) (built: Sep  2 2012 04:56:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

I have tried it with the current branch PHP-5.3.

It started two times correctly (Starts and detaches) after the second start the 
problem occurs again.

So problem is not fixed - I have not tried 5.4 since fpm sapi is the same.

------------------------------------------------------------------------
[2012-09-01 19:41:16] tony2...@php.net

I can't reproduce it here:
# /tmp/fpm/sbin/php-fpm -v
PHP 5.4.8-dev (fpm-fcgi) (built: Sep  1 2012 23:36:17) (DEBUG)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

It starts, spawns its children and detaches from terminal with no problem at 
all.
Can you try the latest snapshot and check if you still can reproduce the issue?

------------------------------------------------------------------------
[2012-08-27 22:54:12] al-php at none dot at

same problem here.

./configure --prefix=/<prefix>/ --enable-fpm --enable-bcmath --with-bz2 
--enable-calendar --with-curl --enable-dba --enable-exif --enable-ftp 
--enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-t1lib 
--with-freetype-dir --with-gettext --enable-mbstring --with-mcrypt --with-mhash 
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 
--enable-mysqlnd --with-openssl --with-pcre-regex --with-pspell --enable-shmop 
--enable-soap --enable-sockets --enable-sysvmsg --enable-wddx  --with-xsl 
--enable-zip --with-zlib --with-tcadb --with-openssl-dir --with-gd

###
bin/php -v
PHP 5.4.5 (cli) (built: Aug  8 2012 01:03:00)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
###

root@Ubuntu-1204-precise-64-minimal ~ # strace -fveall -p 2590 -p 2589
Process 2590 attached - interrupt to quit
Process 2589 attached - interrupt to quit
[pid  2589] wait4(-1,  <unfinished ...>
[pid  2590] futex(0x7fc2a4d73720, FUTEX_WAIT_PRIVATE, 2, NULL
###

------------------------------------------------------------------------
[2012-08-27 19:50:31] 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



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



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

Reply via email to