ID:               43105
 Updated by:       [EMAIL PROTECTED]
 Reported By:      ian at onlineloop dot com
 Status:           Open
 Bug Type:         Apache2 related
 Operating System: Solaris, Linux, Mac OS X
 PHP Version:      5.2.5RC2-dev
 New Comment:

I did some more tests:

PHP 4.4.7: couldn't reproduce
PHP 5.1.6: couldn't reproduce
PHP 5.2.4: couldn't reproduce
PHP 5.2.5: problem found
PHP 5.3-200712262130: problem found


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

[2007-12-26 21:34:25] [EMAIL PROTECTED]

I can't reproduce the bug in PHP 5.1.6 on Darwin Kernel Version 8.11.1,
which makes me think its an issue of 5.2.5 only.

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

[2007-12-23 14:08:14] [EMAIL PROTECTED]

Apache 1.3.33 and PHP 5.2.5 running on Darwin Kernel Version 8.11.1
(Mac OS X 10.4.11) compiled with configure command (gcc):

'./configure' '--prefix=/usr/local' '--mandir=/usr/share/man'
'--infodir=/usr/share/info' '--with-apxs' '--with-kerberos'
'--enable-cli' '--enable-exif' '--enable-ftp' '--enable-mbstring'
'--enable-mbregex' '--enable-sockets' '--with-curl'
'--with-config-file-path=/private/etc' '--sysconfdir=/private/etc'
'--with-mysql=/usr/local/mysql' '--with-mysql-sock=/tmp/mysql.sock'
'--without-pear' '--with-gd' '--enable-gd-native-ttf' '--with-png-dir'
'--with-zlib' '--with-bz2' '--with-libxml-dir'
'--with-mysqli=/usr/local/mysql/bin/mysql_config' '--enable-sqlite-utf8'
'--enable-zip' '--disable-cgi'

doesn't seems to be closing open files (requires, includes etc.) which
ends up with the error "Too many open files" very often. 

# apachectl restart
# lsof -u www | wc -l
> 56
# lsof -u www | grep "\.php" | wc -l
no output

After running one PHP script:

# lsof -u www | grep "\.php" | wc -l
> 22

Another page hit:

# lsof -u www | grep "\.php" | wc -l
> 104

And so on... The number of open files just keeps increasing. 

For some reason PHP 4.4.7 don't have this behavior, that is, apache
keeps the number of open files somewhat constant when PHP is not
running.

For phpMyAdmin the first entries of lsof looks like:
# lsof -u www | grep "\.php" | head
httpd   678  www    6r     REG      14,2    26700   915904
/Users/data/htdocs/mysql/libraries/common.inc.php
httpd   678  www    7r     REG      14,2    18504   915886
/Users/data/htdocs/mysql/libraries/core.lib.php
httpd   678  www    8r     REG      14,2     2063   915950
/Users/data/htdocs/mysql/libraries/sanitizing.lib.php
httpd   678  www    9r     REG      14,2     9447   915968
/Users/data/htdocs/mysql/libraries/Theme.class.php
httpd   678  www   10r     REG      14,2    10571   915906
/Users/data/htdocs/mysql/libraries/Theme_Manager.class.php
httpd   678  www   11r     REG      14,2     9447   915968
/Users/data/htdocs/mysql/libraries/Theme.class.php
httpd   678  www   12r     REG      14,2    33846   915974
/Users/data/htdocs/mysql/libraries/Config.class.php
httpd   678  www   13r     REG      14,2    44257   915868
/Users/data/htdocs/mysql/libraries/Table.class.php
httpd   678  www   14r     REG      14,2    79607   915957
/Users/data/htdocs/mysql/libraries/common.lib.php
httpd   678  www   18r     REG      14,2     1919   915824
/Users/data/htdocs/mysql/libraries/js_escape.lib.php

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

[2007-11-29 16:03:43] marcus dot mueller at grintsch dot com

As I stated above we have this issue on two Linux boxes with
self-compiled PHP binaries. These were compiled using gcc!

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

[2007-11-28 16:36:24] ian at onlineloop dot com

Coming back to the bug report here now.

In the meantime some private emails were exchanged, including a pfiles
output from Solaris showing that PHP had over 210,000 open files after
24 hours running on our servers.  Within 48 hours (we let it go this far
onyl once), apache/php eats around 12Gb of RAM and has between 170 and
220 child processes with over 230,000 open files.  Under 5.1.6 the usage
is more around 1.5-2Gb ram, and 30-70 child processes, with rarely more
than 100 open files (only when we are really under load do we get to
more than about 800 open files at any one time).

A small patch was sent to me to try, however this has changed nothing.

I was also asked to compile with gcc if possible, however this is not
feasible as too many other things would have to be recompiled.  Besides,
we specifically went away from gcc because everything we had that was
compiled with gcc was seg faulting all the time, however with the Sun
Studio compiler suite, everything is stable.

I seriously doubt this is an apache bug, why were things working with
previous versions of PHP, and not this one?

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

[2007-11-28 15:02:11] grknight at iwon dot com

I am also experiencing this issue.

We are running Apache 2.2.3 on Redhat EL 3 and recently tried to update
to 5.2.5 from 5.2.3 to fix the security issues.   The moment 5.2.5 was
activated, connections failed to close in apache and resulted in hung
processes.  I also tried 5.2.4 with the same results.

No configurations were changed nor PHP scripts.

Something changed in the PHP processes that prevents the apxs2handler
from exiting between 5.2.3 and 5.2.4.

Configs available on request.

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

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/43105

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

Reply via email to