ID: 30911 User updated by: slaporte at eurocortex dot fr Reported By: slaporte at eurocortex dot fr Status: Open Bug Type: DOM XML related Operating System: red hat PHP Version: 4.3.9 New Comment:
This script is a part of a big script that is parsing 100000 TEXT fields (read from records in a mysql database) the fields contains XML. 30 seconds after starting the process it takes 300M in memory then linux killed the process before it ends. The memory is then released and available to the system but my process die before having finished. Thank you for your help Previous Comments: ------------------------------------------------------------------------ [2004-11-26 18:20:14] slaporte at eurocortex dot fr Thank you for your reply the script is started using php command line "php -f test.php" at the end of the script the php process die and the memory is then released ------------------------------------------------------------------------ [2004-11-26 18:11:32] [EMAIL PROTECTED] is the memory released after the request finishes? Or does it stay there. ------------------------------------------------------------------------ [2004-11-26 15:38:07] slaporte at eurocortex dot fr 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 this bug report at http://bugs.php.net/?id=30911&edit=1