My apache children have been segfaulting for a few weeks now.  My attempts 
to debug them leads me to believe that its happening in php somewhere.  
The SIGSEGV actually occurs in chunk_alloc, after a malloc and several 
calls to execute.  (I'll fwd a backtrace per the bugs docs as soon as my 
gdb -p catches the SIGSEGV).

This weekend, I started apache with MALLOC_CHECK_=2 and built my php with 
--enable-debug.  Some interesting things started appearing in the logs:

[Sat Oct 12 19:58:16 2002]  Script:  
'/var/www/vhost/webmail.divinia.com/docs/src/login.php'
---------------------------------------
zend_stack.c(103) : Block 0x08C6E628 status:
Beginning:   Overrun (magic=0x08415420, expected=0x7312F8DC)
[Sat Oct 12 19:58:17 2002] [notice] child pid 3037 exit signal Segmentation fault (11)

[Sat Oct 12 18:50:42 2002]  Script:  
'/var/www/vhost/www.divinia.com/docs/mail/src/read_body.php'
---------------------------------------
zend_stack.c(103) : Block 0x08BAF388 status:
Beginning:   Overrun (magic=0x08415420, expected=0x7312F8DC)
[Sat Oct 12 18:50:42 2002] [notice] child pid 4672 exit signal Segmentation fault (11)

Then some pretty whack stuff (that looks like trampled memory) starts 
showing up:

Sun Oct 13 15:08:02 2002] [notice] child pid 28803 exit signal Aborted (6)
Unknown(0) : Warning - String is not zero-terminated (base_uri) (source: 
zend_execute_API.c:274)
Unknown(0) : Warning - String is not zero-terminated (ZZZZZZZZZ
                                                               Ì*) 
(source: zend_opcode.c:159)
[Sun Oct 13 15:08:14 2002]  Script:  
'/var/www/vhost/webmail.divinia.com/docs/src/login.php'
---------------------------------------
zend_opcode.c(159) : Block 0x08698778 status:
zend_variables.c(44) : Actual location (location was relayed)
Beginning:   Cached (allocated on zend_language_scanner.c:4150, 9 bytes)
      End:  OK
---------------------------------------

ÀàBÀàBpÀ=XïXïØàBØàBààBààBph£ðàBðàBøàBøàB(÷(ááBáBáBÝݸ¾¸¾(áB(áB0áB0áB8áB8áB@áB@áBHáBHáBPáBPáBÀÀ`áB`áBà#ror]
 
[client 66.25.48.206] File does not exist: 
/var/www/vhost/www.divinia.com/docs/
Unknown(0) : Fatal error - Maximum execution time of 30 seconds exceeded
ÀàBÀàBpÀ=XïXïØàBØàBààBààBpPsðàBðàBøàBøàB(÷(ááBáBáBÝݸ¾¸¾(áB(áB0áB0áB8áB8áB@áB@áBHáBHáBPáBPáBÀÀ`áB`áBà#02]
 
[error] [client 66.25.48.206] File does not exist: 
/var/www/vhost/www.divinia.com/docs/
images/max.gif

The PHP application is squirrelmail-1.2.8 (although its also segfaulted 
with vbulletin scripts).  Heres my httpd -l:

Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_actions.c
  mod_speling.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_access.c
  mod_auth.c
  mod_auth_mysql.c
  mod_usertrack.c
  mod_unique_id.c
  mod_setenvif.c
  mod_php4.c
  mod_perl.c
  mod_throttle.c
  apache_ssl.c
suexec: enabled; valid wrapper /sbin/suexec

glibc-2.2.5, Linux kernel 2.4.19.

As soon as the next child segfaults, I'll forward a backtrace, but if 
anyone has any comments or suggestions it'd be much appreciated.

Thanks in advance,
Aa.





-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to