ID: 17571 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Feedback Bug Type: Scripting Engine problem Operating System: Redhat Linux 7.2 PHP Version: 4.2.1 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php4-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2002-06-03 06:16:35] [EMAIL PROTECTED] I've tried the latest CVS version and it seems the problem is still here. ------------------------------------------------------------------------ [2002-06-03 05:21:22] [EMAIL PROTECTED] Ops :) Please try with HEAD. ------------------------------------------------------------------------ [2002-06-03 05:18:59] [EMAIL PROTECTED] I'm trying to run PHP in my own multithreaded environment. Memory leaks are critical for my application. I've tried to track the leaks down using memprof and I think I've found a leak in basic globals destructor: There's original basic globals destructor source from PHP 4.2.1: static void basic_globals_dtor(php_basic_globals *basic_globals_p TSRMLS_DC) { zend_hash_destroy(&BG(sm_protected_env_vars)); if (BG(sm_allowed_env_vars)) { free(BG(sm_allowed_env_vars)); } #ifdef PHP_WIN32 CoUninitialize(); #endif } There's an item called url_adapt_state_ex in the BG array which seems to be no deallocated in the destructor. I've tried following modification: static void basic_globals_dtor(php_basic_globals *basic_globals_p TSRMLS_DC) { zend_hash_destroy(&BG(sm_protected_env_vars)); if (BG(sm_allowed_env_vars)) { free(BG(sm_allowed_env_vars)); } if (BG(url_adapt_state_ex).tags) { zend_hash_destroy(BG(url_adapt_state_ex).tags); free(BG(url_adapt_state_ex).tags); } #ifdef PHP_WIN32 CoUninitialize(); #endif } I don't know if my modification is clean, but it seems to solve the problem. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17571&edit=1