Subscribe to RSS Feed

This post isn’t going to solve anyone’s problems but maybe someone will solve mine.
I recently compiled and packaged a new release of php4 (4.4.7) for use with Sun’s Apache2 (Solaris 10 11/06 patched).
Unfortunately for some very strange reason, Apache segfaults whenever it tries to server a page. It segfaults even if the page has no php involved and only if the php module is loaded.

Here is some sample truss output:

2146:   stat64("/var/apache2/vservers/htdocs/favicon.ico", 0xFFBFF720) Err#2 ENOENT2146:   lstat64("/var", 0xFFBFF720)                     = 02146:   lstat64("/var/apache2", 0xFFBFF720)             = 02146:   lstat64("/var/apache2/vservers", 0xFFBFF720)    = 02146:   lstat64("/var/apache2/vservers/htdocs", 0xFFBFF720) = 02146:   lstat64("/var/apache2/vservers/htdocs/favicon.ico", 0xFFBFF720) Err#2 ENOENT2146:       Incurred fault #6, FLTBOUNDS  %pc = 0xFE887CF82146:         siginfo: SIGSEGV SEGV_MAPERR addr=0x000000542146:       Received signal #11, SIGSEGV [caught]2146:         siginfo: SIGSEGV SEGV_MAPERR addr=0x000000542146:   schedctl()                                      = 0xFEE060002146:   lwp_sigmask(SIG_SETMASK, 0x00000400, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]2146:   chdir("/usr/apache2")                           = 02146:   sigaction(SIGSEGV, 0xFFBFF2B8, 0xFFBFF358)      = 02146:   getpid()                                        = 2146 [912]2146:   getpid()                                        = 2146 [912]2146:   kill(2146, SIGSEGV)                             = 02146:   setcontext(0xFFBFF298)2146:       Received signal #11, SIGSEGV [default]2146:         siginfo: SIGSEGV pid=2146 uid=80

I configured Solaris to dump core and gdb’d the core file:

#0  php_handler (r=0x1964e8) at /root/dev/php-4.4.7/sapi/apache2handler/sapi_apache2.c:470470     /root/dev/php-4.4.7/sapi/apache2handler/sapi_apache2.c: No such file or directory.       in /root/dev/php-4.4.7/sapi/apache2handler/sapi_apache2.c(gdb) bt full#0  php_handler (r=0x1964e8) at /root/dev/php-4.4.7/sapi/apache2handler/sapi_apache2.c:470       ctx = (php_struct *) 0x0       conf = (void *) 0x0       brigade = (apr_bucket_brigade *) 0x197f38       bucket = (apr_bucket *) 0x0       parent_req = (request_rec *) 0x0#1  0x0002e730 in ap_run_handler ()No symbol table info available.#2  0x0002ed20 in ap_invoke_handler ()No symbol table info available.#3  0x0002baa8 in ap_process_request ()No symbol table info available.#4  0x0002670c in .st_double_foreff ()No symbol table info available.#5  0x0002670c in .st_double_foreff ()No symbol table info available.Previous frame identical to this frame (corrupt stack?)(gdb) quit

I found some people with a similar problem but no answers here: http://forum.java.sun.com/thread.jspa?threadID=5137425&tstart=270

I even tried my old package for php 4.4.3 but no luck. The only difference between the old machine and the new that I know of is that the old machine is 06/06 and the new one is 11/06????

In the end, I ditch Sun’s Apache2 and install Blastwave packages and everything works.

All I can say is that Sun is wasting it’s time on desktops. Sun needs to bring their software delivery and upgrade management up to Redhat/Debian standards. If they would just do that, they could start charging for their OS again.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Slashdot
  • StumbleUpon
  • Twitter

Tags: , , , , , ,

Leave a Reply