From:             antoine dot bajolet at tdf dot fr
Operating system: Linux 2.4.29
PHP version:      4.3.10
PHP Bug Type:     HTTP related
Bug description:  memory leak in fopen wrappers ?

Description:
------------
It seems that there is a memory leak in fopen wrappers to HTTP.

With a minimal compilation of PHP :

./configure --disable-all --enable-sockets --without-pear
--enable-memory-limit --without-pcre-regex --without-mysql

And the first code above, the memory used increased continuously.

(the -n flag is used to ignore any php.ini script. All parameters are
default).

#sapi/cli/php -n script1.php
12160
13536
13672
13736
13800
13864
13928
13992
14056
14120
14184
... still increasing

With a classic fopen, works fine
#sapi/cli/php -n script2.php
12128
12320
12336
12336
12336
12336
12336
12336
12336
12336
12336
... still stable

This is very annoying because we are writing a small php daemon using
periodics requests on HTTP hosts.

For more infos :
#ldd sapi/cli/php                                                 
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4001b000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x40049000)
        libm.so.6 => /lib/i686/libm.so.6 (0x4005b000)
        libdl.so.2 => /lib/libdl.so.2 (0x4007d000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40081000)
        libc.so.6 => /lib/i686/libc.so.6 (0x40096000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

/lib/libcrypt.so.1 -> libcrypt-2.3.2.so
/lib/libresolv.so.2 -> libresolv-2.3.2.so

Regards
Antoine Bajolet



Reproduce code:
---------------
With this, memory problem :

<?php
/* script1.php */
while(true){
        echo memory_get_usage()."\n";
        $handler = fopen('http://some.thing/','r');
        fclose($handler);
        sleep(2);
} // while
?>

With this, no memory problem

<?php
/* script2.php */
while(true){
        echo memory_get_usage()."\n";
        $handler = fopen('/etc/hosts','r');
        fclose($handler);
        sleep(2);
} // while
?>


Expected result:
----------------
The memory used has to be stable, not increasing.


-- 
Edit bug report at http://bugs.php.net/?id=32255&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=32255&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=32255&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=32255&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=32255&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=32255&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=32255&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=32255&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=32255&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=32255&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=32255&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=32255&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=32255&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=32255&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=32255&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=32255&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=32255&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=32255&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=32255&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=32255&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=32255&r=mysqlcfg

Reply via email to