[PHP-DEV] PHP 4.0 Bug #8298 Updated: Apache segfaults with php module loaded. From: ryan <email protected>
Date: 12/16/00

ID: 8298
User Update by: ryan <email protected>
Status: Open
Bug Type: Apache related
Description: Apache segfaults with php module loaded.

If it helps any, I was poking around through the glibc 2.1.3 ChangeLog (the version I am using) and found the following:

1999-09-12 Ulrich Drepper <drepper <email protected>>

        * version.h (VERSION): Bump to 2.1.3.

        * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): if res_search
        fails don't rely on errno value.
        (getanswer_r): Sett *ERRNOP in error cases.

I hope this helps a little bit. I seriously hope ths is not a glibc problem. :)

Previous Comments:
---------------------------------------------------------------------------

[2000-12-16 15:58:58] ryan <email protected>
This is very wierd. php all of a sudden stopped working when we upgraded to apache 1.3.14, and I have two different backtraces depending on the machine.

This problem originated with 4.0.3.pl1, but I saw a bug report saying it was fixed in CVS so I tried the latest tarball on snaps.php.net as of Friday 12/15.

Compile Options
------------
This is from the spec file I am using:

compile() {
./configure
        --prefix=%{_prefix}
        --sysconfdir=/etc
        --with-config-file-path=/etc
        --enable-pic
        --enable-inline-optimization
        --with-exec-dir=%{_bindir}
        --with-regex=system
        --with-gettext
        --with-gdbm
        --enable-magic-quotes
        --enable-safe-mode
        --enable-sysvsem
        --enable-sysvshm
        --enable-track-vars
        --enable-ftp
        --with-mysql=/usr
        --disable-versioning
        --with-xml
        --with-zlib
        --enable-debug
        --disable-pear
        --disable-yp
        $*
make
}

Then I am doing comile --enable-shared to build the DSO and --enable-static to build the php standalone.

php.ini
------
I have played around with several options in here and I do not think it is the problem. I can supply it upon request.

Machine 1
-----------
Apache only sefgaults when there is an "ErrorLog" directive inside of a "VirtualHost" directive. Backtrace below

(gdb) bt full
#0 0x404914dc in pthread_handle_sigcancel (sig=134951340, ctx={gs = 62548,
      __gsh = 2061, fs = 47914, __fsh = 2057, es = 0, __esh = 0, ds = 64172,
      __dsh = 49151, edi = 135132244, esi = 3221224132, ebp = 134595447,
      esp = 134943172, ebx = 134951340, edx = 1075379916, ecx = 3221224136,
      eax = 3221224136, trapno = 3221224168, err = 134614136, eip = 134943172,
      cs = 12716, __csh = 2059, eflags = 1075379916,
      esp_at_signal = 134574437, ss = 4508, __ssh = 2059,
      fpstate = 0x4018fecc, oldmask = 0, cr2 = 3221224248}) at pthread.c:663
        self = 0x1
        jmpbuf = (sigjmp_buf *) 0x80df454
#1 0x805c31a in open_error_log ()
No symbol table info available.
#2 0x805c377 in ap_open_logs ()
No symbol table info available.
#3 0x8060c78 in standalone_main ()
No symbol table info available.
#4 0x80614c3 in main ()
No symbol table info available.
#5 0x400b898b in __libc_start_main (main=0x806116c <main>, argc=2,
    argv=0xbffffb84, init=0x804f2d4 <_init>, fini=0x80979dc <_fini>,
    rtld_fini=0x4000ae60 <_dl_fini>, stack_end=0xbffffb7c)
    at ../sysdeps/generic/libc-start.c:92
        argv = (char **) 0xbffffb84
        rtld_fini = (void (*)()) 0
        stack_end = (void *) 0x1

Machine 2
--------
Apache seems to always segfault if there is a VirtualHost directive... it looks to me like it chokes while trying to resolve the ServerName but I could be wrong.

(gdb) bt
#0 0x5a0b30 in ?? ()
#1 0x5abfaa in _nss_dns_gethostbyname_r (
    name=0xbffff660 "grepmaster.test.guardiandigital.com", result=0x2a2b64,
    buffer=0x80e4198 "", buflen=1024, errnop=0x2a0a40, h_errnop=0xbffff648)
    at nss_dns/dns-host.c:162
#2 0x275c3f in __gethostbyname_r (
    name=0xbffff660 "grepmaster.test.guardiandigital.com", resbuf=0x2a2b64,
    buffer=0x80e4198 "", buflen=1024, result=0xbffff644, h_errnop=0xbffff648)
    at ../nss/getXXbyYY_r.c:182
#3 0x274bd4 in gethostbyname (
    name=0xbffff660 "grepmaster.test.guardiandigital.com")
    at ../nss/getXXbyYY.c:137
#4 0x806d77e in ap_get_local_host ()
#5 0x80698da in ap_fini_vhost_config ()
#6 0x8057092 in ap_read_config ()
#7 0x8060c41 in standalone_main ()
#8 0x80614c3 in main ()
#9 0x1c898b in __libc_start_main (main=0x806116c <main>, argc=2,
    argv=0xbffffba4, init=0x804f2d4 <_init>, fini=0x80979dc <_fini>,
    rtld_fini=0x11ae60 <_dl_fini>, stack_end=0xbffffb9c)
    at ../sysdeps/generic/libc-start.c:92

I thank you all very much for your time. If you need any more information please let me know and I will be happy to supply it.

Cheers,
Ryan

---------------------------------------------------------------------------

Full Bug description available at: http://bugs.php.net/?id=8298

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>