Re: PHP 4.0 Bug #4558: segfault on client request (linux & mod_php )
| From: | Rasmus Lerdorf | Date: | Wed, 24 May 2000 22:41:11 +0000 |
| Subject: | Re: PHP 4.0 Bug #4558: segfault on client request (linux & mod_php ) | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-19416@lists.php.net to get a copy of this message | ||
If you installed MySQL from a recent rpm release chances are you installed
a client library that was linked against pthreads. There is a bug in
glibc-2.1 that causes problems from something that isn't linked against
pthreads loading something that is. The easiest fix is to grab the MySQL
source tarball and compile the non-threaded client library and link
against that instead. The MySQL guys are aware of this and will be
putting a non-threaded client rpm on their site soon now.
-Rasmus
On Wed, 24 May 2000, Roger Foskett (2) wrote:
> Hello, I have a problem with php release 4.0.0 in that it segfaults whenever a client
> connection is made. All components below are clean built with gcc.
>
> The details of my configuration are below - I am not sure if its exactly the same as BUG
> 4558 but it looks like it. How can I debug the backtrace below further??
>
> Has anyone come across this as well - or is it just me doing a dodgy installation??
>
> many thanks,
>
> Roger Foskett
>
>
> -------- VERSIONS INFO --------
> Linux 2.2.14-15mdk (mandrake)
> Apache 1.3.12 (built as APXS - works fine with mod_perl)
> php 4.0.0 (built as APXS)
>
> Related bug: 4558 (http://bugs.php.net/bugs.php?id=4558)
>
> -------- Error log message --------
> [Mon May 22 22:09:16 2000] [notice] child pid 2101 exit signal Segmentation
> fault (11)
>
> -------- PHP CONFIG --------
> ./configure \
> --with-apxs=/usr/local/apache/bin/apxs \
> --with-config-file-path=/www/conf \
> --with-gd \
> --with-mysql
>
> (gd, zlib & mysql all installed ok)
> -------- PHP INI --------
> standard php.ini (php.ini-dist) in /www/conf/
>
> -------- APACHE CONFIG --------
> (largefile support required to stop mod_perl-1.23 segfaults - as perl is largefile enabled)
>
> CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \
> ./configure \
> --sysconfdir=/www/conf \
> --logfiledir=/www/logs \
> --enable-module=most \
> --enable-shared=max \
> --enable-module=rewrite \
> --enable-shared=rewrite
>
>
> -------- BACKTRACE --------
> (the seg fault was caused by telnetting into port 80 and typing
>
GET
> - couldnt produce a core file)
>
> [root@mako bin]# gdb ./httpd
> GNU gdb 19991116
> Copyright 1998 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 "i586-mandrake-linux"...
> (gdb) run -X -f /www/conf/httpd.conf -d /tmp
> Starting program: /usr/local/apache/bin/./httpd -X -f /www/conf/httpd.conf -d /tmp
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x40560469 in ?? () from /usr/local/apache/libexec/libphp4.so
> (gdb) bt
> #0 0x40560469 in ?? () from /usr/local/apache/libexec/libphp4.so
> #1 0x8054719 in ap_invoke_handler ()
> #2 0x8068c9f in process_request_internal ()
> #3 0x8069106 in ap_internal_redirect ()
> #4 0x401c6e7a in ?? () from /usr/local/apache/libexec/mod_cgi.so
> #5 0x8054719 in ap_invoke_handler ()
> #6 0x8068c9f in process_request_internal ()
> #7 0x8068d0a in ap_process_request ()
> #8 0x805fea6 in child_main ()
> #9 0x8060061 in make_child ()
> #10 0x80601dc in startup_children ()
> #11 0x806083d in standalone_main ()
> #12 0x806106c in main ()
> #13 0x400c19ee in __libc_start_main (main=0x8060cd4 <main>, argc=6, argv=0xbffffa14,
> init=0x804e830 <_init>, fini=0x80968c4 <_fini>, rtld_fini=0x4000a570
> <_dl_fini>,
> stack_end=0xbffffa0c) at ../sysdeps/generic/libc-start.c:90
> --------------------------------------
>