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]

Reply via email to