ID: 26665
Updated by: pajoye@php.net
Reported By: fschaper at intux dot org
Status: Open
Bug Type: Reproducible crash
Operating System: *
PHP Version: 4CVS, 5CVS
New Comment:
Hello,
PHP ""should"" not crash in this case. However I missed your conception
of a cache. I suggest you to look at a database, ie sqlite. I hope you
do not use this kind of """cache""" too much.
pierre
Previous Comments:
------------------------------------------------------------------------
[2004-02-05 16:34:11] brianlmoon@php.net
I can reproduce this at will. It is not a memory issue as I can create
the array in code with ease and not crash. I can also split the file
into several files and all is ok. It is only when I try to load a
large file (~2.8MB for me) that PHP crashes. I provide the following
test file that is 4MB+ that crashes every time.
http://spidey.dealnews.com/~brianm/php_large_file_crash.php.txt
As you will see, I have an early call to exit() in that file. That nor
the echo ever happens. I ran this with and without my custom php.ini
file.
My PHP version info:
$ php -v
PHP 4.3.4 (cli) (built: Feb 5 2004 16:00:45) (DEBUG)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
gdb did not give me much:
(gdb) run
Starting program: /usr/local/bin/php php_large_file_crash.php.txt
Program received signal SIGSEGV, Segmentation fault.
execute (op_array=0x8221834) at
/usr/src/apache/php-4.3.4/Zend/zend_execute.c:1071
1071 zend_clean_garbage(TSRMLS_C);
We generate large amounts of cached arrays in files. This is the first
time this has happened as far as I know.
------------------------------------------------------------------------
[2003-12-30 10:26:38] sniper@php.net
Does not crash for me. And the example script is pretty useless anyway,
you really should be using error_reporting = E_ALL once..
------------------------------------------------------------------------
[2003-12-22 07:59:26] fschaper at intux dot org
This Bug can be repoduduced under Window's as well, only the file-size
has to be larger (will depend on system memory etc.). I have tried it
with an 8MB version (might as well take less than that) of the script
(the one I added the link to) and PHP crashes under Windows as well.
------------------------------------------------------------------------
[2003-12-19 09:59:05] fschaper at intux dot org
This time I ran the script via the shell without apache
(gdb) bt
#0 0x0811f8f6 in execute (op_array=0x819841c)
at
/usr/src/debug/php4-STABLE-200312191430/Zend/zend_execute.c:1758
#1 0x0810fa28 in zend_execute_scripts (type=8, retval=0x0,
file_count=3)
at /usr/src/debug/php4-STABLE-200312191430/Zend/zend.c:884
#2 0x080ed1d3 in php_execute_script (primary_file=0xbffffcf8)
at /usr/src/debug/php4-STABLE-200312191430/main/main.c:1729
#3 0x08125eb3 in main (argc=2, argv=0xbffffd74)
at
/usr/src/debug/php4-STABLE-200312191430/sapi/cgi/cgi_main.c:1578
(gdb) frame 0
#0 0x0811f8f6 in execute (op_array=0x819841c)
at
/usr/src/debug/php4-STABLE-200312191430/Zend/zend_execute.c:1758
1758 ALLOC_ZVAL(valptr);
------------------------------------------------------------------------
[2003-12-19 04:36:10] fschaper at intux dot org
Description:
------------
While working with "many" array's (around 2MB of code) we encountered a
crash on linux-systems while everything works fine under windows. PHP
silently fails - only error log is the apache segfault.
Apache 1.3.28
PHP 4.3.3
Reproduce code:
---------------
http://www.intux.org/tmp/php_segf_test.tar.gz
100 Lines of code works
Around 103 lines and more and it starts to break down
Expected result:
----------------
The last PHP command should write an "done" on the page.
Actual result:
--------------
An empty document should be returned since apache simply crashes
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26665&edit=1