Bug #4075: Segmentation violation in init code.
| From: | comitale at ca dot ibm dot com | Date: | Fri, 07 Apr 2000 23:23:12 +0000 |
| Subject: | Bug #4075: Segmentation violation in init code. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-17723@lists.php.net to get a copy of this message | ||
From: comitale@ca.ibm.com
Operating system: Redhat Linux 6.1
PHP version: 3.0.16
PHP Bug Type: Reproduceable crash
Bug description: Segmentation violation in init code.
My apologies, this is a dupliate of bug report #3861, but I see no mechanism to add more information
to an existing bug report. I have a LOT of new information to provide regarding this problem,
including how to duplicate it easily.
First, my configuration. I am running Redhat Linux 6.1, with IBM DB2 UDB for Linux version 6.1 with
the appropriate Redhat specific patches (to the dbm, not Linux). I have the standard installation
with the SDK installed. You can obtain a 60 day free evaluation version of DB2 for Linux if you
want to reproduct this error, from IBM's DB2 site:
http://www-4.ibm.com/software/data/db2/linux/
I downloaded and compiled fresh copies of Apache 1.3.12 and PHP 3.0.16. Here are my
"./configure" lines:
Apache:
CC="egcs" OPTIM="-O2 -mpentiumpro" \
./configure --prefix=/opt/apache \
--enable-module=so \
--server-uid=505 \
--server-gid=505
PHP:
CC="egcs" OPTIM="-O2 -mpentiumpro" \
./configure --prefix=/opt/php3 \
--with-apxs=/opt/apache/bin/apxs \
--with-ibm-db2=/opt/IBMdb2/V6.1 \
--disable-debug
My php.ini file is the default one for this version. This problem occurs when you attempt to start
the Apache web server process(es) with the php module configured.
Here is a stack traceback:
(gdb) bt
#0 0x40a136a8 in ?? ()
#1 0x400b93fa in _IO_new_file_close_it (fp=0x80b50f0) at fileops.c:136
#2 0x400b527d in _IO_new_fclose (fp=0x80b50f0) at iofclose.c:50
#3 0x40177952 in php3_init_config () at configuration-parser.y:226
#4 0x4016e35a in php3_config_ini_startup () at main.c:947
#5 0x4016eec0 in php3_module_startup () at main.c:1238
#6 0x4016ca0d in php3_create_dir () from /opt/apache/libexec/libphp3.so
#7 0x8063f60 in ap_single_module_configure ()
#8 0x805ecd1 in load_module ()
#9 0x8062f54 in invoke_cmd ()
#10 0x80634f9 in ap_handle_command ()
#11 0x8063548 in ap_srm_command_loop ()
#12 0x8063873 in ap_process_resource_config ()
#13 0x8063edc in ap_read_config ()
#14 0x806aa87 in standalone_main ()
#15 0x806b141 in main ()
#16 0x4007c1eb in __libc_start_main (main=0x806aec4 <main>, argc=1, argv=0xbffffc54,
init=0x804ea6c <_init>, fini=0x808d1fc <_fini>, rtld_fini=0x4000a610
<_dl_fini>,
stack_end=0xbffffc4c) at ../sysdeps/generic/libc-start.c:90
(gdb)
And here is an strace of the problem (this is taken from the apache child process that dies when the
segmentation violation happens):
setsid() = 20438
close(0) = 0
open("/dev/null", O_RDONLY|O_LARGEFILE) = 0
close(1) = 0
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 1
getpid() = 20438
time(NULL) = 955139874
close(16) = 0
semget(4294967294, 1, 0) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_BLOCK, [ALRM CHLD], [RT_0], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RT_0], NULL, 8) = 0
munmap(0x40157000, 624552) = 0
munmap(0x401f4000, 218372) = 0
munmap(0x4022a000, 8140452) = 0
munmap(0x409ee000, 23084) = 0
munmap(0x409f4000, 31180) = 0
munmap(0x409fc000, 59900) = 0
munmap(0x40a0b000, 69188) = 0
open("/opt/apache/conf/httpd.conf", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=31507, ...}) = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=31507, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40157000
read(4, "##\n## httpd.conf -- Apache HTTP "..., 4096) = 4096
stat("/opt/apache", {st_mode=S_IFDIR|0755, st_size=246, ...}) = 0
read(4, "onf/access.conf\n\n#\n# Timeout: Th"..., 4096) = 4096
open("/opt/apache/libexec/libphp3.so", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0755, st_size=1432839, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260E\1"..., 4096) = 4096
mmap(0, 624552, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40158000
mprotect(0x401da000, 92072, PROT_NONE) = 0
mmap(0x401da000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x81000) = 0x401da000
mmap(0x401df000, 71592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x401df000
close(5) = 0
open("/opt/IBMdb2/V6.1/lib/libgd.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=16262, ...}) = 0
mmap(0, 16262, PROT_READ, MAP_PRIVATE, 5, 0) = 0x401f3000
close(5) = 0
open("/usr/lib/libgd.so.1", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0755, st_size=155713, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\23"..., 4096) = 4096
mmap(0, 218372, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x401f7000
mprotect(0x401fd000, 193796, PROT_NONE) = 0
mmap(0x401fd000, 126976, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x5000) = 0x401fd000
mmap(0x4021c000, 66820, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x4021c000
close(5) = 0
open("/opt/IBMdb2/V6.1/lib/libdb2.so.1", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0555, st_size=8361446, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20v\v\000"..., 4096) = 4096
mmap(0, 8140452, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x4022d000
mprotect(0x40803000, 2021028, PROT_NONE) = 0
mmap(0x40803000, 1540096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x5d5000) = 0x40803000
mmap(0x4097b000, 480932, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x4097b000
close(5) = 0
open("/opt/IBMdb2/V6.1/lib/libgdbm.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libgdbm.so.2", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0755, st_size=28657, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\22"..., 4096) = 4096
mmap(0, 23084, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x409f1000
mprotect(0x409f6000, 2604, PROT_NONE) = 0
mmap(0x409f6000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x4000) = 0x409f6000
close(5) = 0
open("/opt/IBMdb2/V6.1/lib/libpam.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libpam.so.0", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0755, st_size=32795, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\22"..., 4096) = 4096
mmap(0, 31180, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x409f7000
mprotect(0x409fe000, 2508, PROT_NONE) = 0
mmap(0x409fe000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x6000) = 0x409fe000
close(5) = 0
open("/opt/IBMdb2/V6.1/lib/libresolv.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libresolv.so.2", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0755, st_size=170564, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\"\0"..., 4096) = 4096
mmap(0, 59900, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x409ff000
mprotect(0x40a0a000, 14844, PROT_NONE) = 0
mmap(0x40a0a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0xa000) = 0x40a0a000
mmap(0x40a0c000, 6652, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x40a0c000
close(5) = 0
open("/usr/IBMdb2/V6.1/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/opt/IBMdb2/V6.1/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/lib/libpthread.so.0", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0755, st_size=247381, ...}) = 0
read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3407\0"..., 4096) = 4096
mmap(0, 69188, PROT_READ|PROT_EXEC, MAP_PRIVATE, 5, 0) = 0x40a6a000
mprotect(0x40a74000, 28228, PROT_NONE) = 0
mmap(0x40a74000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 5, 0x9000) = 0x40a74000
close(5) = 0
mprotect(0x4022d000, 6119424, PROT_READ|PROT_WRITE) = 0
mprotect(0x4022d000, 6119424, PROT_READ|PROT_EXEC) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) = 0
getpid() = 20438
uname({sys="Linux", node="wntw167", ...}) = 0
rt_sigaction(SIGRT_0, {0x40a70e10, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x40a707ac, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x40a70e9c, [], 0x4000000}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RT_0], NULL, 8) = 0
getpid() = 20438
munmap(0x401f3000, 16262) = 0
open("./php3.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/opt/apache/conf/php3.ini", O_RDONLY) = 5
ioctl(5, TCGETS, 0xbfffc9b8) = -1 ENOTTY (Inappropriate ioctl for device)
read(5, "[PHP_3]\n\n;;;;;;;;;;;;;;;;;;;\n; A"..., 8192) = 6745
read(5, "", 1447) = 0
read(5, "", 8192) = 0
ioctl(5, TCGETS, 0xbfffc9a4) = -1 ENOTTY (Inappropriate ioctl for device)
--- SIGSEGV (Segmentation fault) ---
If you would like me to get any more information for you to fix this, please let me know.