ID: 31508 Updated by: [EMAIL PROTECTED] Reported By: yml at dtlink dot com -Status: Open +Status: Feedback Bug Type: Apache related Operating System: Linux (RedHat 9) PHP Version: 4.3.10 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip Previous Comments: ------------------------------------------------------------------------ [2005-01-13 02:39:09] yml at dtlink dot com Same config with --enable-debug added, amongst many other leak messages this one stood out: --------------------------------------- /usr/local/src/php-4.3.10/Zend/zend_execute.c(486) : Block 0x082A0698 status: /usr/local/src/php-4.3.10/Zend/zend_variables.c(44) : Actual location (location was relayed) Beginning: OK (allocated on /usr/local/src/php-4.3.10/Zend/zend_operators.c:1068, 10 bytes) End: Overflown (magic=0x2A8FCC83 instead of 0x2A8FCC84) 1 byte(s) overflown --------------------------------------- ------------------------------------------------------------------------ [2005-01-13 00:58:18] yml at yml dot com Bug 31525 may be related to this one. The same section of code run under PHP 5.0.3 generates consistent errors. Under PHP 4.3.10 the problems range from a object reference error, to a core dump to Apache just spinning endlessly. However, under PHP 5.0.3 the same section of code causes consistent and immediate errors. I've reproduced a much smaller body of code the demonstrates the PHP 5 problem. My intuition is that it's related. At least this one is demonstrable. All info is contained in bug 31525 and in this article with sample code: http://www.yml.com/homepage.html?COMP=clog_list&cmd=detail&cs_clog_entries_ref=149 (make sure the URL isn't chopped) It may very well be something I'm doing since I'm doing some complicated object trees and reference passing, however I would think that in no case should the $this reference just get dropped or become an unknown type. ------------------------------------------------------------------------ [2005-01-12 09:14:27] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If possible, make the script source available online and provide an URL to it here. Try avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2005-01-12 04:24:34] yml at dtlink dot com Description: ------------ Apache 1.3.33 is sitting and spinning if PHP 4.3.10 not compiled with --enable-debug. RedHat 9. Apache 1.3.33. PHP 4.3.10. Config.status: ./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --prefix=/usr/local/php_4.3.10 --with-mcrypt=/usr/local/lib --with-gd --with-jpeg-dir=/usr/lib --with-zlib-dir=/usr/lib --with-png-dir=/usr/lib --enable-memory-limit Running php.ini-recommended. diplaying errors on. max exec time 120 seconds. max mem use 25megs. I have a huge body of code that implements a component framework. It involves large objects trees. I do a tremendous amount of object reference passing. I have a situation where if I load a certain number of object trees on a page, apache will sit and spin at 99% CPU utilization. One object tree less, it works fine. One more, it spins (where spinning means forever .. the max exec time interrupt never occurs, the process does not continue to grow, no messages in the logs.) I am sure that this bug is being invoked due to some error in my code ... probably a calling a method on an invalid object reference which always seems to confuse the script engine. However this code has worked flawlessly in the past ... and it works flawlessly if I compile PHP with --enable-debug. I realize this isn't enough info to go on. I'm posting it in the hopes that maybe others have seen similar behavior. If you want to contact me, I get about 2000 pieces of SPAM a day. To contact me directly please use the form at: http://www.yml.com/Contact_Yermo.html so I can add you to my white list. Actual result: -------------- Running httpd in gdb and getting it to spin to 99.9% utilization: This GDB was configured as "i386-redhat-linux-gnu"... (gdb) run -X -F Starting program: /usr/local/apache/bin/httpd -X -F Program received signal SIGINT, Interrupt. 0x4011cf77 in _int_malloc () from /lib/libc.so.6 (gdb) where #0 0x4011cf77 in _int_malloc () from /lib/libc.so.6 #1 0x4011d810 in _int_realloc () from /lib/libc.so.6 #2 0x4011c10d in realloc () from /lib/libc.so.6 #3 0x40308f5d in _erealloc (ptr=0x200f00, size=35, allow_failure=0) at /usr/local/src/php-4.3.10/Zend/zend_alloc.c:329 #4 0x40313c65 in add_string_to_string (result=0xbfff9150, op1=0xbfff9150, op2=0x95e7ad4) at /usr/local/src/php-4.3.10/Zend/zend_operators.c:1029 #5 0x403243f2 in execute (op_array=0x81eef54) at /usr/local/src/php-4.3.10/Zend/zend_execute.c:1508 #6 0x40324c13 in execute (op_array=0x81b97c8) at /usr/local/src/php-4.3.10/Zend/zend_execute.c:1686 #7 0x40324c13 in execute (op_array=0x810af5c) at /usr/local/src/php-4.3.10/Zend/zend_execute.c:1686 #8 0x40316cab in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/local/src/php-4.3.10/Zend/zend.c:900 #9 0x402f04af in php_execute_script (primary_file=0xbfffeb80) at /usr/local/src/php-4.3.10/main/main.c:1736 #10 0x40328cda in apache_php_module_main (r=0x80ff654, display_source_mode=0) at /usr/local/src/php-4.3.10/sapi/apache/sapi_apache.c:54 #11 0x40329709 in send_php (r=0x80ff654, display_source_mode=0, filename=0x0) at /usr/local/src/php-4.3.10/sapi/apache/mod_php4.c:621 #12 0x403298ad in send_parsed_php (r=0x80ff654) at /usr/local/src/php-4.3.10/sapi/apache/mod_php4.c:636 etc. The kicker is that if I compile PHP with --enable-debug it will not spin. However I get endless memory leak messages such as: /usr/local/src/php-4.3.10/Zend/zend_execute.c(789) : Freeing 0x0D20E5DC (44 bytes), script=/usr/local/WWW/mobie.yml.com/html/mobie/content_server/publish.php /usr/local/src/php-4.3.10/Zend/zend_variables.c(123) : Actual location (location was relayed) Last leak repeated 1165 times /usr/local/src/php-4.3.10/ext/xml/xml.c(262) : Freeing 0x0D20C524 (5 bytes), script=/usr/local/WWW/mobie.yml.com/html/mobie/content_server/publish.php Last leak repeated 6677 times /usr/local/src/php-4.3.10/ext/xml/xml.c(647) : Freeing 0x0D20A214 (12 bytes), script=/usr/local/WWW/mobie.yml.com/html/mobie/content_server/publish.php Last leak repeated 6076 times /usr/local/src/php-4.3.10/ext/xml/xml.c(258) : Freeing 0x0D209D84 (12 bytes), script=/usr/local/WWW/mobie.yml.com/html/mobie/content_server/publish.php Last leak repeated 6677 times /usr/local/src/php-4.3.10/Zend/zend_API.c(842) : Freeing 0x0D2080C4 (12 bytes), ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31508&edit=1
