ID: 13437 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Old Status: Feedback Status: Open Bug Type: Reproducible crash Operating System: Linux & Solaris PHP Version: 4.1RC5 New Comment:
I tried using apache_child_terminate() as suggested, however, this doesn't help any. (It might be beneficial if this function and its required configuration option were documented somewhere.) Previous Comments: ------------------------------------------------------------------------ [2001-12-10 22:32:39] [EMAIL PROTECTED] Could you try calling apache_child_terminate() at the end of your script? ------------------------------------------------------------------------ [2001-12-04 10:54:55] [EMAIL PROTECTED] This helps with my problem of apache children being left in unusable states with large memory allocations. However, it is still entirely unreasonable that memory that takes only a few seconds to allocate should need several minutes to be disposed of. I just watched PHP take *six* minutes to dispose of 70 megs of memory it allocated, and on prior occasions when no one was watching, I've found it to have be running for *hours* cleaning up after itself. ------------------------------------------------------------------------ [2001-12-03 17:46:34] [EMAIL PROTECTED] I've seen this as well. The time limit you set is removed when the script finishes but before the memory is cleaned up. What I did to avoid the problem was to change the code in php_request_shutdown() main/main.c. The end of the function looks like: zend_try { shutdown_memory_manager(CG(unclean_shutdown), 0); } zend_end_try(); zend_try { zend_unset_timeout(TSRMLS_C); } zend_end_try(); I switched the timeout and the shutdown, and then it worked for me. It still takes a long time, but you don't get a timeout. Not sure if this is the correct fix, but maybe you want to test and confirm that it helps? ------------------------------------------------------------------------ [2001-12-03 15:58:46] [EMAIL PROTECTED] This problem is still happening on 4.1RC5, though it seems to be doing a little better than before. However it's also ignoring the time value I'm passing in to set_time_limit(), but only when it runs out of time during clean-up. #0 0x8107f05 in _efree (ptr=0xa62065c) at zend_alloc.c:240 240 REMOVE_POINTER_FROM_LIST(p); (gdb) bt #0 0x8107f05 in _efree (ptr=0xa62065c) at zend_alloc.c:240 #1 0x810829b in shutdown_memory_manager (silent=1, clean_cache=1) at zend_alloc.c:469 #2 0x807169e in php_module_shutdown () at main.c:1007 #3 0x8070239 in main (argc=3, argv=0xbffffc44) at cgi_main.c:788 ------------------------------------------------------------------------ [2001-10-10 22:17:21] [EMAIL PROTECTED] Confirmed on Redhat 7.2 No crash, but print_r($us) at the end of this script displays no output. ------------------------------------------------------------------------ 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/?id=13437 Edit this bug report at http://bugs.php.net/?id=13437&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]