Bug #11676 Updated: A few apache children consume all memory and CPU.
| From: | zeev@php.net | Date: | Tue, 26 Jun 2001 18:32:38 +0000 |
| Subject: | Bug #11676 Updated: A few apache children consume all memory and CPU. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-58077@lists.php.net to get a copy of this message | ||
ID: 11676
Updated by: zeev
Reported By: valerio@wnet.it
Old-Status: Closed
Status: Open
Bug Type: Scripting Engine problem
Operating system:
PHP Version: 4.0 Latest CVS (2001-06-25)
Assigned To:
Comments:
Ignore the last comment, wrong bug report :)
Previous Comments:
---------------------------------------------------------------------------
[2001-06-26 14:31:52] zeev@php.net
Output buffering indeed cannot be used inside output handler functions. However, the code that
handled that error situation contained a bug that caused PHP to enter an infinite loop. This bug is
now fixed (although the limitation of not being able to use output buffering inside output handlers
still applies)
---------------------------------------------------------------------------
[2001-06-26 07:32:26] valerio@wnet.it
Well, the problem is that we have many virtual hosts on that server, each using it's own log
file...
I can confirm that the gdb trace for ALL the many dead process, which are in running state, gives
the three lines:
#0 0x4012c23e in chunk_free ()
#1 0x4012bfaa in __cfree ()
#2 0x80fbcbf in shutdown_memory_manager ()
(it happened this morning too)
Is there some way to know which script was executing just before the child died, please tell me!
---------------------------------------------------------------------------
[2001-06-26 07:04:06] sniper@php.net
It would help a lot to track this down if you could find
out if this happens by running some script.
---------------------------------------------------------------------------
[2001-06-25 17:40:15] valerio@wnet.it
I'm using php 4.0.7-dev (downloaded from the CVS tree), Apache 1.3.20 on a P3 600 1 Gig RAM.
After some hours that the server is running, in no particularly loaded confdition, CPU and memory
utilization grows abnormally, making the server unusable.
"top" shows that 4 o 5 httpd processes are eating 20% CPU each, and are all in
"running" state. I managed to attach a gdb to one of these processes, and here's the
result:
Attaching to program `/usr/local/apache/bin/httpd', Pid 21784
Reading symbols from /lib/libpam.so.0...done.
Reading symbols from /lib/libdl.so.2...done.
Reading symbols from /lib/libcrypt.so.1...done.
Reading symbols from /lib/libresolv.so.2...done.
Reading symbols from /lib/libm.so.6...done.
Reading symbols from /lib/libnsl.so.1...done.
Reading symbols from /lib/libdb.so.3...done.
Reading symbols from /lib/libc.so.6...done.
Reading symbols from /lib/ld-linux.so.2...done.
Reading symbols from /lib/libnss_compat.so.2...done.
Reading symbols from /lib/libnss_files.so.2...done.
0x4012c23e in chunk_free ()
(gdb) bt
#0 0x4012c23e in chunk_free ()
#1 0x4012bfaa in __cfree ()
#2 0x80fbcbf in shutdown_memory_manager ()
This is all I get. I saw MANY MANY bug reports with similarities to this one in the db. The only
solution is stopping and restarting apache. In apache's error_log i get many lines with
"child xxx still did not exit...sending a SIGTERM" and "child xxx still did not
exit...sending a SIGKILL" as soon as i stop it.
Let me know if I can make something to help you out more!
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=11676&edit=2