Hi-

I've searched high and low (bugs.php.net and google) and can't seem to find
anyone with this same problem, I'm not entirely convinced it's a bug, but if
I should post it to the bugs db, please let me know...

I'm running Apache 1.3.22, MySQL 3.23.46, cURL 7.8, mod_ssl 2.8.5 and PHP
4.0.6/4.1.1 on RH Linux 6.2 kernel 2.2.18pre11-va2.0smp.  (with php as a
DSO, mod_ssl static).

Using the 4.0.6 module, I have no problems.  When I install 4.1.1, then run
'apachectl startssl', apachectl functions normally, asks for my key's
passphrase, then exits.  Ordinarily the forked child would stay alive and
spawn off StartServers children, but instead a 'ps aux' shows no httpd's
running.

I have about a dozen virtualhosts set up, and when I rip out all but the
first 6 and then comment out the ErrorLog and CustomLog lines in the 6th
virtualhost setup (or rip the 6th virtualhost altogether), apache starts
fine.  I've tried re-ordering the virtualhosts but that doesn't help.  I
found in the apache docs that it might be a file descriptor limit problem,
and posted to the php.install group asking if anyone had seen this, but got
no response.  I'm convinced it's not a file descriptor problem, though
because running 'limit' shows "descriptors     1024" and "openfiles
1024" (everything else unlimited).  The segfault only happens with the newer
php though, so I'm posting here... if you think it's an apache (or something
else) problem, please let me know.

I've uncommented the 6th virtualhost's log directives and run 'httpd -X' to
get a core file, and the backtrace says:

#gdb /usr/local/apache/bin/httpd /tmp/core
GNU gdb 19991004
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 "i386-redhat-linux"...
Core was generated by `httpd -X'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libm.so.6...done.
Reading symbols from /lib/libcrypt.so.1...done.
Reading symbols from /lib/libdb.so.3...done.
Reading symbols from /usr/local/lib/libexpat.so.0...done.
Reading symbols from /lib/libdl.so.2...done.
Reading symbols from /lib/libc.so.6...done.
Reading symbols from /lib/ld-linux.so.2...done.
Reading symbols from /lib/libnss_files.so.2...done.
Reading symbols from /usr/local/apache/libexec/libphp4.so...done.
Reading symbols from /lib/libresolv.so.2...done.
Reading symbols from /lib/libpam.so.0...done.
Reading symbols from /home/mysql/lib/mysql/libmysqlclient.so.10...done.
Reading symbols from /usr/local/lib/libcurl.so.2...done.
Reading symbols from /lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libz.so.1...done.
#0  strcmp (p1=0x403785c0 <Address 0x403785c0 out of bounds>, p2=0x406935c0
"DESX") at ../sysdeps/generic/strcmp.c:38
38      ../sysdeps/generic/strcmp.c: No such file or directory.
(gdb) bt
#0  strcmp (p1=0x403785c0 <Address 0x403785c0 out of bounds>, p2=0x406935c0
"DESX") at ../sysdeps/generic/strcmp.c:38
#1  0x80f984d in obj_name_cmp ()
Cannot access memory at address 0x3008add8
(gdb) quit


If I do an 'strace httpd -X', the last several lines look like this:
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x401ba000
_llseek(21, 0, [0], SEEK_CUR)           = 0
getpid()                                = 12231
stat("/usr/local/apache/logs/httpd.pid", {st_mode=S_IFREG|0644, st_size=6,
...}) = 0
time(NULL)                              = 1011128952
write(2, "[Tue Jan 15 16:09:12 2002] [warn"..., 131) = 131
write(2, "\n", 1)                       = 1
umask(022)                              = 02
umask(022)                              = 022
open("/usr/local/apache/logs/httpd.pid", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
umask(02)                               = 022
fstat64(0x3, 0xbffff1a0)                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x401bb000
write(3, "12231\n", 6)                  = 6
close(3)                                = 0
munmap(0x401bb000, 4096)                = 0
open("./php.ini", O_RDONLY)             = -1 ENOENT (No such file or
directory)
open("/usr/local/lib/php.ini", O_RDONLY) = 3
getcwd("/tmp", 4095)                    = 5
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local", {st_mode=S_IFDIR|S_ISGID|0755, st_size=4096, ...}) = 0
lstat("/usr/local/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/local/lib/php.ini", {st_mode=S_IFREG|0644, st_size=24208, ...})
= 0
ioctl(3, TCGETS, 0xbffff7fc)            = -1 ENOTTY (Inappropriate ioctl for
device)
read(3, "[PHP]\n; $Id: php.ini-dist,v 1.78"..., 8192) = 8192
read(3, "n to end users, such as file pat"..., 8192) = 8192
read(3, "CP_PORT or the mysql-tcp entry i"..., 8192) = 7824
read(3, "", 368)                        = 0
read(3, "", 8192)                       = 0
ioctl(3, TCGETS, 0xbfffec14)            = -1 ENOTTY (Inappropriate ioctl for
device)
close(3)                                = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++


Interestingly, if I 'strace httpd -X' while using the 4.0.6 module and
compare, the last "read(3, "",8192)" call doesn't occur... the close is
followed by lots of brk's  (dunno if this is of any significance).  Looks to
me like "whatever happens right after reading in php.ini" is causing the
segfault.  But I don't know what that is or how to fix it.

The last line in my ssl_engine_log after a segfault shows:
[info]  Init: Configuring temporary DH parameters (512/1024 bits)

When using 4.0.6, the line after that one is:
[info]  Init: 2nd startup round (already detached)
<followed by lots more and a properly functioning httpd>

4.1.1 is configured like this:
./configure  --with-mysql=/home/mysql --with-apxs=/usr/local/apache/bin/apxs
 --with-curl=/usr/local/lib/libcurl.so --with-openssl --enable-debug

4.0.6 is configured like this:
./configure  --with-mysql=/home/mysql --with-apxs=/usr/local/apache/bin/apxs
 --with-curl=/usr/local/lib/libcurl.so --with-openssl


I'm really stuck, so any help you can offer would be greatly appreciated.

Thanks.

-Russ





-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to