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