From:             slaporte at eurocortex dot fr
Operating system: red hat
PHP version:      4.3.9
PHP Bug Type:     DOM XML related
Bug description:  DOM XML Extension xpath_new_context memory leak

Description:
------------
Hello 
i'm using php and dom xml 
i encounter a memory leak 
the destructor of xpath context 
is not called 
i'm using 4_3_9 version 
i put some fprintf(stderr, ...) into the destructor 
and it never go inside 
the destructor was registered with "xpathcontext" 
le_xpathctxp = zend_register_list_destructors_ex(php_free_xpath_context,
NULL, "xpathcontext", module_number); 

the class with "XPathContext" 
INIT_OVERLOADED_CLASS_ENTRY(ce, "XPathContext",
php_xpathctx_class_functions, NULL, NULL, NULL); 

i try to make both lowercase 
but it is changing nothing 


the test script is very simple 
and when you run it
and the process grow and grow and grow .... 

i add a function free to xpathcontext object
that function calls the destructor
then the memory is released

but i would prefer that the destructor be called naturally



Reproduce code:
---------------
function StringToXml($sXml) { 
$oDom = domxml_open_mem($sXml); 
$oCtx = $oDom->xpath_new_context(); 
unset($oCtx); 
$oDom->free(); 
unset($oDom); 
} 

$s = getFile("test.xml"); 
for($n=200000; $n--;) { 
echo "$n<br/>"; 
flush(); 
StringToXml($s); 
} 



Expected result:
----------------
php process should not grow, memory should be released

Actual result:
--------------
php process grow

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

Reply via email to