php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #4075 Segmentation violation in init code.
Submitted: 2000-04-07 19:23 UTC Modified: 2002-10-01 13:28 UTC
From: comitale at ca dot ibm dot com Assigned:
Status: Wont fix Package: Reproducible Crash
PHP Version: 3.0.16 OS: Redhat Linux 6.1
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
27 + 43 = ?
Subscribe to this entry?

 
 [2000-04-07 19:23 UTC] comitale at ca dot ibm dot com
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.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-10-01 13:28 UTC] hholzgra@php.net
We are sorry, but can not support PHP 3 related problems anymore.
Momentum is gathering for PHP 5, and we think supporting PHP 3 will
lead to a waste of resources which we want to put into getting PHP 5
ready. Ofcourse PHP 4 will will continue to be supported for the
forseeable future.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Apr 16 18:01:30 2024 UTC