#23299 [Opn]: Intermittant but reproducable corruption and crash
| From: | bginter at ndevtech dot net | Date: | Tue, 22 Apr 2003 07:07:47 +0000 |
| Subject: | #23299 [Opn]: Intermittant but reproducable corruption and crash | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-38043@lists.php.net to get a copy of this message | ||
ID: 23299
User updated by: bginter at ndevtech dot net
Reported By: bginter at ndevtech dot net
Status: Open
Bug Type: Reproducible crash
Operating System: Linux 2.4.20
PHP Version: 4.3.1, STABLE-200304220130
New Comment:
I have been generating these backtraces by running gdb and typing 'bt'
just like you suggested. Please excuse my ignorance with gdb and let
me know if I should try a different approach.
I have so far not been able to get httpd to dump a core file even
though ulimit -c is unlimited and there are write permissions on the
directory for the httpd user. Perhaps I'm missing something obvious?
I was able to get this trace a few minutes ago but several other traces
have all contained the same limited object.11 gibberish I sent earlier:
(gdb) bt
#0 0x40143277 in writev () from /lib/libc.so.6
#1 0x08053cd7 in writev_it_all ()
#2 0x0805410b in large_write ()
#3 0x080541d7 in ap_bwrite ()
#4 0x08068291 in ap_rwrite ()
#5 0x403c724b in object.11 () from
/usr/local/apache/libexec/libphp4.so
#6 0x40394813 in object.11 () from
/usr/local/apache/libexec/libphp4.so
#7 0x4039396a in object.11 () from
/usr/local/apache/libexec/libphp4.so
#8 0x403861a9 in object.11 () from
/usr/local/apache/libexec/libphp4.so
#9 0x403addcb in object.11 () from
/usr/local/apache/libexec/libphp4.so
#10 0x403add65 in object.11 () from
/usr/local/apache/libexec/libphp4.so
#11 0x403ad980 in object.11 () from
/usr/local/apache/libexec/libphp4.so
#12 0x40614686 in zend_assign_to_variable_reference () from
/usr/local/ZendOptimizer/lib/ZendOptimizer.so
#13 0x4061f6e6 in zend_assign_to_variable_reference () from
/usr/local/ZendOptimizer/lib/ZendOptimizer.so
#14 0x4061f6e6 in zend_assign_to_variable_reference () from
/usr/local/ZendOptimizer/lib/ZendOptimizer.so
#15 0x40622a02 in zend_oe () from
/usr/local/ZendOptimizer/lib/ZendOptimizer.so
#16 0x4038755a in object.11 () from
/usr/local/apache/libexec/libphp4.so
#17 0x403c714e in object.11 () from
/usr/local/apache/libexec/libphp4.so
#18 0x403c7c7e in object.11 () from
/usr/local/apache/libexec/libphp4.so
#19 0x403c7ce2 in object.11 () from
/usr/local/apache/libexec/libphp4.so
#20 0x080554e9 in ap_invoke_handler ()
#21 0x0806b5df in process_request_internal ()
#22 0x0806b646 in ap_process_request ()
#23 0x08061e06 in child_main ()
#24 0x08061fe5 in make_child ()
#25 0x0806215c in startup_children ()
#26 0x080627ed in standalone_main ()
#27 0x0806307c in main ()
#28 0x4009214f in __libc_start_main () from /lib/libc.so.6
Please let me know how I can help further. Thank you for your efforts!
Previous Comments:
------------------------------------------------------------------------
[2003-04-22 01:10:27] rasmus@php.net
These are useless backtraces. How are you getting them?
Try something like:
gdb ./httpd
run -X
Then hit the server and try to reproduce the problem and type: bt when
it dumps.
------------------------------------------------------------------------
[2003-04-21 21:48:53] bginter at ndevtech dot net
The problem persists with the current CVS snapshot
(php4-STABLE-200304220130). I ran ./buildconf and then compiled with
the same options used with PHP 4.3.1.
The new backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x40401f5e in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
(gdb) bt
#0 0x40401f5e in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#1 0x4054040c in php4_module () from
/usr/local/apache/libexec/libphp4.so.cvs
#2 0x4040caa6 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#3 0x4040b31d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#4 0x4041584d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#5 0x4041d41a in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#6 0x40415479 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#7 0x4040b30c in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#8 0x4041584d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#9 0x4041d41a in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#10 0x40415479 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#11 0x4040b30c in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#12 0x4041584d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#13 0x4041d41a in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#14 0x404154c3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#15 0x4040b30c in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#16 0x4041584d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#17 0x4041d41a in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#18 0x404154c3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#19 0x4040b30c in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#20 0x4041584d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#21 0x4041d41a in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#22 0x404154c3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#23 0x4040b30c in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#24 0x4041584d in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#25 0x4041d41a in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#26 0x4040add7 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#27 0x40416be3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#28 0x403da17c in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#29 0x4042fbf8 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#30 0x40430c30 in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#31 0x40430caf in object.11 () from
/usr/local/apache/libexec/libphp4.so.cvs
#32 0x080554e9 in ap_invoke_handler ()
#33 0x0806b5df in process_request_internal ()
#34 0x0806b646 in ap_process_request ()
#35 0x08061e06 in child_main ()
#36 0x08061fe5 in make_child ()
#37 0x0806215c in startup_children ()
#38 0x080627ed in standalone_main ()
#39 0x0806307c in main ()
#40 0x4009214f in __libc_start_main () from /lib/libc.so.6
Please let me know how I can assist further in isolating these errors.
Thank you.
------------------------------------------------------------------------
[2003-04-21 20:55:21] magnus@php.net
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
------------------------------------------------------------------------
[2003-04-21 16:01:44] bginter at ndevtech dot net
I am experiencing an intermittant but reproducable problem with data,
function names, method names, and objects being corrupted and often
crashing Apache. This problem has been reoccurring periodically since
around PHP 4.2.0 and continues to occur in 4.3.1.
Unfortunately, the code that causes these errors to occur is quite
large and attempts to create a small test case have been unsuccessful.
Some examples of the corruption are provided below:
Example 1: Script startup calling require_once().
/usr/local/apache/lariat/lariat2/find.php(14) : Fatal error - Cannot
redeclare findup() (previously declared in ÈM@4:14)
Example 2: Passing an array by value to a function.
Array
(
[0] => Ä 9 [Corrupted]
[1] => DC
[2] => 28
[3] => 334.87
[4] => Ä 9 [Corrupted]
[5] => 0.00
[6] => 1825
)
PHP is running under Apache 1.3.27 and is compiled with the following
options:
./configure \
--prefix=/usr/local/php_4.3.1 \
--with-apxs=/usr/local/apache/bin/apxs \
--enable-bcmath \
--enable-gd-native-ttf \
--with-gd \
--with-ttf \
--enable-calendar \
--with-mysql \
--enable-trans-sid \
--enable-inline-optimization \
--enable-track-vars \
--enable-versioning \
--with-openssl \
--with-iconv \
--enable-xml \
--with-pgsql=/usr/local/pgsql-7.3 \
--with-mcrypt \
--with-curl \
--with-zip \
--enable-ftp \
--with-zlib-dir=/usr \
--enable-debug
Here is the backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x404053e0 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
(gdb) bt
#0 0x404053e0 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#1 0x405382cc in php4_module () from
/usr/local/apache/libexec/libphp4.so.debug
#2 0x4040f93d in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#3 0x4041740a in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#4 0x4040f569 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#5 0x4040540c in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#6 0x4040f93d in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#7 0x4041740a in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#8 0x4040f5b3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#9 0x4040540c in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#10 0x4040f93d in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#11 0x4041740a in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#12 0x4040f5b3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#13 0x4040540c in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#14 0x4040f93d in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#15 0x4041740a in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#16 0x4040f5b3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#17 0x4040540c in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#18 0x4040f93d in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#19 0x4041740a in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#20 0x40404ed7 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#21 0x40410cd3 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#22 0x403d4e5b in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#23 0x40429b48 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#24 0x4042aa70 in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#25 0x4042aaef in object.11 () from
/usr/local/apache/libexec/libphp4.so.debug
#26 0x080554e9 in ap_invoke_handler ()
#27 0x0806b5df in process_request_internal ()
#28 0x0806b646 in ap_process_request ()
#29 0x08061e06 in child_main ()
#30 0x08061fe5 in make_child ()
#31 0x0806215c in startup_children ()
#32 0x080627ed in standalone_main ()
#33 0x0806307c in main ()
#34 0x4009214f in __libc_start_main () from /lib/libc.so.6
(gdb)
Apache is linked to the following libraries:
$ ldd /usr/local/apache/bin/httpd
libm.so.6 => /lib/libm.so.6 (0x4001a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4003b000)
libdb.so.2 => /lib/libdb.so.2 (0x40069000)
libdl.so.2 => /lib/libdl.so.2 (0x40076000)
libc.so.6 => /lib/libc.so.6 (0x40079000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
The PHP module is linked as follows:
$ ldd /usr/local/apache/libexec/libphp4.so.debug
libzzip-0.so.10 => /usr/local/lib/libzzip-0.so.10 (0x4031f000)
libpq.so.2 => /usr/local/pgsql-7.3/lib/libpq.so.2 (0x40325000)
libmcrypt.so.4 => /usr/lib/libmcrypt.so.4 (0x4033c000)
libltdl.so.3 => /usr/lib/libltdl.so.3 (0x40342000)
libpng.so.2 => /usr/lib/libpng.so.2 (0x40348000)
libz.so.1 => /usr/lib/libz.so.1 (0x40373000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40382000)
libresolv.so.2 => /lib/libresolv.so.2 (0x403af000)
libm.so.6 => /lib/libm.so.6 (0x403bf000)
libdl.so.2 => /lib/libdl.so.2 (0x403e1000)
libnsl.so.1 => /lib/libnsl.so.1 (0x403e4000)
libcurl.so.2 => /usr/local/lib/libcurl.so.2 (0x403f8000)
libc.so.6 => /lib/libc.so.6 (0x40415000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
Please let me know if I can provide any other information to help
isolate the cause of this problem.
Thank you for investigating.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=23299&edit=1