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]