Our development web server has Apache children segfaulting every so
often--both Apache 1.3.27 and 1.3.28, and both PHP 4.3.2 and
4.3.3--and thus far we've been unable to make it happen on demand. It
appears to be a heap corruption problem and there's a good chance that
the corruption happens in a request prior to the one that dies. The
most similar problem I've found so far is this:
http://www.zend.com/lists/php-dev/200210/msg01039.html
I've confirmed that a couple of recent segfault bugs crash for us, in
case our problem is one of them:
http://bugs.php.net/bug.php?id=25275
http://bugs.php.net/bug.php?id=23333
Is anyone experiencing or working on something similar?
The configure:
./configure \
--disable-all \
--enable-debug \
\
--prefix=/usr/local \
--with-apache=/usr/src/apache_1.3.28 \
--with-oci8=/u01/app/oracle/product/8.1.7 \
\
--enable-cli \
--disable-cgi \
\
--enable-inline-optimization \
--enable-track-vars \
--enable-session \
--enable-trans-sid \
--without-mysql \
--without-pear \
--with-pcre-regex \
--enable-ftp \
--enable-posix \
--disable-short-tags \
--disable-xml \
\
--enable-sockets \
--with-xmlrpc \
A sample backtrace:
moregan@blitz[~/savecores]$ cat core.5742.btfull
GNU gdb Red Hat Linux (5.2.1-4)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "i386-redhat-linux"...
Core was generated by `/usr/local/apache/bin/httpd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/i686/libpthread.so.0...done.
Loaded symbols for /lib/i686/libpthread.so.0
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /usr/lib/libexpat.so.0...done.
Loaded symbols for /usr/lib/libexpat.so.0
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/i686/libm.so.6...done.
Loaded symbols for /lib/i686/libm.so.6
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from
/u01/app/oracle/product/8.1.7/lib/libclntsh.so.8.0...done.
Loaded symbols for /u01/app/oracle/product/8.1.7/lib/libclntsh.so.8.0
Reading symbols from /usr/lib/libgdbm.so.2...done.
Loaded symbols for /usr/lib/libgdbm.so.2
Reading symbols from /lib/i686/libc.so.6...done.
Loaded symbols for /lib/i686/libc.so.6
Reading symbols from /lib/libutil.so.1...done.
Loaded symbols for /lib/libutil.so.1
Reading symbols from
/u01/app/oracle/product/8.1.7/lib/libwtc8.so...done.
Loaded symbols for /u01/app/oracle/product/8.1.7/lib/libwtc8.so
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/Data/Dumper/Dumper.so...done.
Loaded symbols for
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/Data/Dumper/Dumper.so
Reading symbols from
/usr/local/lib/perl5/5.8.0/i686-linux/auto/B/B.so...done.
Loaded symbols for /usr/local/lib/perl5/5.8.0/i686-linux/auto/B/B.so
Reading symbols from
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/Apache/Request/Request.so...done.
Loaded symbols for
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/Apache/Request/Request.so
Reading symbols from
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/Apache/Symbol/Symbol.so...done.
Loaded symbols for
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/Apache/Symbol/Symbol.so
Reading symbols from
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/B/Size/Size.so...done.
Loaded symbols for
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/B/Size/Size.so
Reading symbols from
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/DBI/DBI.so...done.
Loaded symbols for
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/DBI/DBI.so
Reading symbols from
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Fcntl/Fcntl.so...done.
Loaded symbols for
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Fcntl/Fcntl.so
Reading symbols from
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Digest/MD5/MD5.so...done.
Loaded symbols for
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Digest/MD5/MD5.so
Reading symbols from
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Storable/Storable.so...done.
Loaded symbols for
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Storable/Storable.so
Reading symbols from
/usr/local/lib/perl5/5.8.0/i686-linux/auto/IO/IO.so...done.
Loaded symbols for /usr/local/lib/perl5/5.8.0/i686-linux/auto/IO/IO.so
Reading symbols from
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Cwd/Cwd.so...done.
Loaded symbols for
/usr/local/lib/perl5/5.8.0/i686-linux/auto/Cwd/Cwd.so
Reading symbols from
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/DBD/Oracle/Oracle.so...done.
Loaded symbols for
/usr/local/lib/perl5/site_perl/5.8.0/i686-linux/auto/DBD/Oracle/Oracle.so
Reading symbols from /usr/lib/gconv/ISO8859-1.so...done.
Loaded symbols for /usr/lib/gconv/ISO8859-1.so
Reading symbols from /lib/libnss_nisplus.so.2...done.
Loaded symbols for /lib/libnss_nisplus.so.2
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
#0 0x4207448f in _int_realloc () from /lib/i686/libc.so.6
(gdb) bt full
#0 0x4207448f in _int_realloc () from /lib/i686/libc.so.6
No symbol table info available.
#1 0x42073416 in realloc () from /lib/i686/libc.so.6
No symbol table info available.
#2 0x4202ab8f in __add_to_environ () from /lib/i686/libc.so.6
No symbol table info available.
#3 0x4202aab8 in putenv () from /lib/i686/libc.so.6
No symbol table info available.
#4 0x080f7d4a in zif_putenv (ht=1, return_value=0x8dde6dc,
this_ptr=0x0, return_value_used=0)
at /usr/src/php-4.3.3/ext/standard/basic_functions.c:1347
p = 0x8de149b ""
env = (char **) 0x89fa710
pe = {
putenv_string = 0x8de03fc
"LD_LIBRARY_PATH=/u01/app/oracle/product/8.1.7/lib:/u01/app/oracle/product/8.1.7/ctx/lib:",
previous_value = 0x0, key = 0x8de148c "LD_LIBRARY_PATH", key_len =
15}
str = (struct _zval_struct **) 0x8a5082c
#5 0x080cf776 in execute (op_array=0x8d1873c) at
/usr/src/php-4.3.3/Zend/zend_execute.c:1616
original_return_value = (struct _zval_struct **) 0x8d278b0
return_value_used = 0
execute_data = {opline = 0x8d27898, function_state =
{function_symbol_table = 0x8c69664, function = 0x834dc20, reserved = {
0x80c3f37, 0x8dedf50, 0x7c78b6ec, 0xbfff9160}}, fbc = 0x0, ce =
0x0, object = {ptr = 0x0}, Ts = 0xbfff5880,
original_in_execution = 1 '\001', op_array = 0x8d1873c,
prev_execute_data = 0xbfff90f0}
#6 0x080cf95f in execute (op_array=0x8c7d2f8) at
/usr/src/php-4.3.3/Zend/zend_execute.c:1660
calling_symbol_table = (struct _hashtable *) 0x8b35c44
original_return_value = (struct _zval_struct **) 0xbfff9ca8
return_value_used = 0
execute_data = {opline = 0x8c0f214, function_state =
{function_symbol_table = 0x8b35d64, function = 0x8d1873c, reserved = {
0x80cbf0a, 0x8cbe984, 0x8b334e4, 0x8}}, fbc = 0x8d1873c, ce =
0x0, object = {ptr = 0x8db8db4}, Ts = 0xbfff8c00,
original_in_execution = 1 '\001', op_array = 0x8c7d2f8,
prev_execute_data = 0xbfffab70}
#7 0x080cf95f in execute (op_array=0x8c81f50) at
/usr/src/php-4.3.3/Zend/zend_execute.c:1660
calling_symbol_table = (struct _hashtable *) 0x8a56e0c
original_return_value = (struct _zval_struct **) 0xbfffc0ac
return_value_used = 0
execute_data = {opline = 0x8c74458, function_state =
{function_symbol_table = 0x8b35c44, function = 0x8c7d2f8, reserved = {
0x80cbf0a, 0x8cbe984, 0x8ac4294, 0x8}}, fbc = 0x8c7d2f8, ce =
0x0, object = {ptr = 0x0}, Ts = 0xbfff9160,
original_in_execution = 1 '\001', op_array = 0x8c81f50,
prev_execute_data = 0xbfffcd40}
#8 0x080cf95f in execute (op_array=0x8a70514) at
/usr/src/php-4.3.3/Zend/zend_execute.c:1660
calling_symbol_table = (struct _hashtable *) 0x83162cc
original_return_value = (struct _zval_struct **) 0xbfffcdc4
return_value_used = 0
execute_data = {opline = 0x8ab9084, function_state =
{function_symbol_table = 0x8a56e0c, function = 0x8c81f50, reserved = {
0x80b82c1, 0x8a88fec, 0x82aab60, 0x61}}, fbc = 0x8c81f50, ce =
0x0, object = {ptr = 0x0}, Ts = 0xbfffabe0,
original_in_execution = 0 '\0', op_array = 0x8a70514,
prev_execute_data = 0x0}
#9 0x080bff34 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /usr/src/php-4.3.3/Zend/zend.c:885
files = 0xbfffcdf4 "Ðîÿ¿ "
i = 1
file_handle = (struct _zend_file_handle *) 0xbffff020
orig_op_array = (struct _zend_op_array *) 0x8db8038
local_retval = (struct _zval_struct *) 0x0
#10 0x08097ad1 in php_execute_script (primary_file=0xbffff020) at
/usr/src/php-4.3.3/main/main.c:1723
orig_bailout = {{__jmpbuf = {1108517584, 1073815584,
-1073744604, -1073745368, -1073745808, 134801605},
__mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 32
times>}}}}
orig_bailout_set = 1 '\001'
prepend_file_p = (struct _zend_file_handle *) 0xbfffeef0
append_file_p = (struct _zend_file_handle *) 0xbfffeed0
prepend_file = {type = 1 '\001', filename = 0x8a67a1c
"standard.php", opened_path = 0x8a705ec "", handle = {fd = 6,
fp = 0x6}, free_filename = 0 '\0'}
append_file = {type = 0 '\0', filename = 0x871c26c
"cleanup.php", opened_path = 0x0, handle = {fd = 0, fp = 0x0},
free_filename = 0 '\0'}
old_cwd = 0xbfffce00 "/usr/local/apache"
old_primary_file_path = 0x0
retval = 0
#11 0x080d42c5 in apache_php_module_main (r=0x89ef3dc,
display_source_mode=0) at
/usr/src/php-4.3.3/sapi/apache/sapi_apache.c:54
retval = 0
file_handle = {type = 1 '\001', filename = 0x89f0114
"/site/tw/ca/analysis/submit.html",
opened_path = 0x8b35ca4 "FROM custmst SCHOOL, custmst DISTRICT ",
handle = {fd = 6, fp = 0x6}, free_filename = 0 '\0'}
#12 0x0808eb20 in send_php ()
No symbol table info available.
#13 0x0808eb8b in send_parsed_php ()
No symbol table info available.
#14 0x081b0890 in ap_invoke_handler ()
No symbol table info available.
#15 0x081c5303 in process_request_internal ()
No symbol table info available.
#16 0x081c5362 in ap_process_request ()
No symbol table info available.
#17 0x081bc5ab in child_main ()
No symbol table info available.
#18 0x081bc80c in make_child ()
No symbol table info available.
#19 0x081bcb4b in perform_idle_server_maintenance ()
No symbol table info available.
#20 0x081bd16a in standalone_main ()
No symbol table info available.
#21 0x081bd770 in main ()
No symbol table info available.
#22 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
No symbol table info available.