Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1918 - RPM causes segmentation violations when used with --prefix
Summary: RPM causes segmentation violations when used with --prefix
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: rpm
Version: 6.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Erik Troan
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 1999-03-31 17:22 UTC by thaynes
Modified: 2008-05-01 15:37 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 1999-05-30 21:37:30 UTC


Attachments (Terms of Use)

Description thaynes 1999-03-31 17:22:40 UTC
Problems with rpm on Redhat beta 5.8

The problem is that the version of RPM on this beta CD
segmentation-faults when installing our RPM files.
These RPMs have been uploaded to incoming.redhat.com in the
./lacd directory.

Red Hat Linux release 5.8.1.1
Kernel 2.2.1-6 on an i586
login: tim
Password:

zsh, ps1 11:56AM tim > rpm --version
RPM version 2.91

zsh, ps1 11:56AM tim > cd temp
zsh, ps1 11:57AM temp > ls
openlink-3.2-1.i386-glibc2.rpm
openlink-udbcsdk-3.2-1.i386-glibc2.rpm
openlink-3.2-1.i386.readme.txt
openlink-wwwcfg-3.2-1.i386-glibc2.rpm
openlink-agents-3.2-1.i386-glibc2.rpm
virtuoso-lite-1.0-3.i386-glibc2.rpm
openlink-odbcsdk-3.2-1.i386-glibc2.rpm
virtuoso-lite-1.0-3.i386.readme.txt
zsh, ps1 11:57AM temp > su
Password:
[root@ps1 temp]# rpm -i --prefix=/home/tim/latest
openlink-3.2-1.i386-glibc2.rpm

Segmentation fault
[root@ps1 temp]#

# Trying again with -vvh

[root@ps1 temp]# rpm -ivvh --prefix=/home/tim/latest
openlink-3.2-1.i386-glibc2.
rpm
D: counting packages to install
D: found 1 packages
D: looking for packages to download
D: retrieved 0 packages
D: New Header signature
D: Signature size: 68
D: Signature pad : 4
D: sigsize         : 72
D: Header + Archive: 1186778
D: expected size   : 1186778
D: opening database mode 0x42 in //var/lib/rpm/
D: found 0 source and 1 binary packages
D: dependencies: looking for /bin/sh
D: dependencies: looking for glibc
D: installing binary packages
Segmentation fault
[root@ps1 temp]#

# strace output follows

[root@ps1 temp]# strace rpm -iv --prefix=/home/tim/latest
openlink-3.2-1.i386-gl
ibc2.rpm
execve("/bin/rpm", ["rpm", "-iv",
"--prefix=/home/tim/latest", "openlink-3.2-1.i
386-glibc2.rpm"], [/* 20 vars */]) = 0
personality(PER_LINUX)                  = 0
geteuid()                               = 0
getuid()                                = 0
getegid()                               = 0
getgid()                                = 0
brk(0)                                  = 0x8107dcc
brk(0x8107dec)                          = 0x8107dec
brk(0x8108000)                          = 0x8108000
getpid()                                = 2266
brk(0x8109000)                          = 0x8109000
open("/usr/lib/rpm/rpmpopt", O_RDONLY)  = 3
lseek(3, 0, SEEK_END)                   = 2657
lseek(3, 0, SEEK_SET)                   = 0
read(3, "#\n# This file *should not be mo"..., 2657) = 2657
close(2657)                             = -1 EBADF (Bad file
descriptor)
open("/etc/popt", O_RDONLY)             = -1 ENOENT (No such
file or directory)
getuid()                                = 0
geteuid()                               = 0
open("/root/.popt", O_RDONLY)           = -1 ENOENT (No such
file or directory)
uname({sys="Linux", node="ps1", ...})   = 0
brk(0x810a000)                          = 0x810a000
open("/usr/lib/rpm/rpmrc", O_RDONLY)    = 4
fstat(4, {st_mode=0, st_size=0, ...})   = 0
read(4, "################################"..., 5776) = 5776
brk(0x810b000)                 = 0x810b000
brk(0x810c000)                          = 0x810c000
brk(0x810d000)                          = 0x810d000
close(4)                                = 0
open("/etc/rpmrc", O_RDONLY)            = -1 ENOENT (No such
file or directory)
open("/root/.rpmrc", O_RDONLY)          = -1 ENOENT (No such
file or directory)
open("/usr/lib/rpm/macros", O_RDONLY)   = 4
fstat(4, {st_mode=S_ISUID|0603, st_size=0, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400000
00
read(4, "#==============================="..., 4096) = 4026
brk(0x810e000)                          = 0x810e000
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x40000000, 4096)                = 0
open("openlink-3.2-1.i386-glibc2.rpm", O_RDONLY) = 4
fstat(4, {st_mode=S_IFCHR|S_ISUID|S_ISGID|0420,
st_rdev=makedev(84, 65), ...}) =
 0
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\355\253\356\333\3\0\0\0\0\377op"..., 96) = 96
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\216\255\350\1", 4)            = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\0\0", 4)                  = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\0\2", 4)                  = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\0\24", 4)                 = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\3\350\0\0\0\4\0\0\0\0\0\0\0"..., 52) = 52
fstat(4, {st_mode=S_IFCHR|S_ISUID|S_ISGID|0420,
st_rdev=makedev(84, 110), ...})
= 0
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\0\0", 4)                  = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\216\255\350\1", 4)            = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\0\0", 4)                  = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\0)", 4)                   = 4
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0W\343", 4)                 = 4
brk(0x8114000)                          = 0x8114000
select(5, [4], NULL, NULL, {5, 0})      = 1 (in [4], left
{5, 0})
read(4, "\0\0\3\350\0\0\0\6\0\0\0\0\0\0\0"..., 23155) =
23155
brk(0x8115000)                          = 0x8115000
brk(0x8118000)                          = 0x8118000
brk(0x8119000)                          = 0x8119000
open("//var/lib/rpm/packages.rpm", O_RDWR|O_CREAT, 0644) = 5
lseek(5, 0, SEEK_END)                   = 4627656
lseek(5, 0, SEEK_SET)                   = 0
read(5, " \t\5\2\210\276B\0", 8)        = 8
lseek(5, 0, SEEK_END)                   = 4627656
lseek(5, 0, SEEK_CUR)                   = 4627656
fcntl(5, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0,
len=0}) = 0
stat("//var/lib/rpm/nameindex.rpm", {st_mode=0, st_size=0,
...}) = 0
open("//var/lib/rpm/nameindex.rpm", O_RDWR|O_CREAT, 0644) =
6
fcntl(6, F_SETFD, FD_CLOEXEC)           = 0
read(6, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
stat("//var/lib/rpm/fileindex.rpm", {st_mode=S_ISVTX|0145,
st_size=0, ...}) = 0
open("//var/lib/rpm/fileindex.rpm", O_RDWR|O_CREAT, 0644) =
7
fcntl(7, F_SETFD, FD_CLOEXEC)           = 0
read(7, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
lseek(7, 4096, SEEK_SET)                = 4096
read(7, "\266\0\360\17\350\17\335\17\325\17"..., 4096) =
4096
stat("//var/lib/rpm/providesindex.rpm",
{st_mode=S_IFCHR|S_ISUID|S_ISGID|0602, s
t_rdev=makedev(84, 65), ...}) = 0
open("//var/lib/rpm/providesindex.rpm", O_RDWR|O_CREAT,
0644) = 8
fcntl(8, F_SETFD, FD_CLOEXEC)           = 0
read(8, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
stat("//var/lib/rpm/requiredby.rpm", {st_mode=0, st_size=0,
...}) = 0
open("//var/lib/rpm/requiredby.rpm", O_RDWR|O_CREAT, 0644) =
9
fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
read(9, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
stat("//var/lib/rpm/conflictsindex.rpm",
{st_mode=S_ISVTX|0761, st_size=0, ...})
 = 0
open("//var/lib/rpm/conflictsindex.rpm", O_RDWR|O_CREAT,
0644) = 10
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
read(10, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
stat("//var/lib/rpm/groupindex.rpm", {st_mode=S_ISVTX|0771,
st_size=0, ...}) = 0
open("//var/lib/rpm/groupindex.rpm", O_RDWR|O_CREAT, 0644) =
11
fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
read(11, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
stat("//var/lib/rpm/triggerindex.rpm",
{st_mode=S_ISVTX|0723, st_size=0, ...}) =
 0
open("//var/lib/rpm/triggerindex.rpm", O_RDWR|O_CREAT, 0644)
= 12
fcntl(12, F_SETFD, FD_CLOEXEC)          = 0
read(12, "\0\6\25a\0\0\0\2\0\0\4\322\0\0\20"..., 260) = 260
brk(0x811c000)                          = 0x811c000
stat("/bin", {st_mode=0, st_size=0, ...}) = 0
brk(0x811e000)                          = 0x811e000
lseek(7, 278528, SEEK_SET)              = 278528
read(7, "\360\0\354\17\344\17\331\17\321\17"..., 4096) =
4096
lseek(5, 110104, SEEK_SET)              = 110104
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0,", 4)                   = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\v`", 4)                   = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0d\0\0\0\10\0\0\0\0\0\0\0\1"..., 3616) = 3616
brk(0x811f000)                          = 0x811f000
stat("/home/ftp/bin", {st_mode=S_ISVTX|0726, st_size=0,
...}) = 0
lseek(5, 414616, SEEK_SET)              = 414616
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0-", 4)                   = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\r\340", 4)                = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0d\0\0\0\10\0\0\0\0\0\0\0\4"..., 4272) = 4272
stat("/bin", {st_mode=0, st_size=0, ...}) = 0
lseek(6, 8192, SEEK_SET)                = 8192
read(6, "v\1\373\17\363\17\351\17\341\17\323"..., 4096) =
4096
lseek(5, 127000, SEEK_SET)              = 127000
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0/", 4)                   = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0041\250", 4)               = 4
mmap(0, 278528, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000
0000
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0d\0\0\0\10\0\0\0\0\0\0\0\1"..., 275608) =
275608
brk(0x8135000)                          = 0x8135000
brk(0x8138000)                          = 0x8138000
brk(0x813a000)                          = 0x813a000
brk(0x813d000)                          = 0x813d000
brk(0x8150000)                          = 0x8150000
brk(0x8153000)                          = 0x8153000
brk(0x8157000)                          = 0x8157000
brk(0x815b000)                          = 0x815b000
brk(0x815c000)                          = 0x815c000
brk(0x815f000)                          = 0x815f000
brk(0x8162000)                          = 0x8162000
munmap(0x40000000, 278528)              = 0
brk(0x811e000)                          = 0x811e000
brk(0x8120000)                          = 0x8120000
lseek(10, 4096, SEEK_SET)               = 4096
read(10, "\f\0\370\17\360\17\350\17\340\17"..., 4096) = 4096
lseek(6, 4096, SEEK_SET)                = 4096
read(6, "d\1\366\17\356\17\346\17\336\17\325"..., 4096) =
4096
lseek(5, 4351832, SEEK_SET)             = 4351832
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0*", 4)                   = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0TJ", 4)                    = 4
brk(0x8126000)                          = 0x8126000
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\3\350\0\0\0\6\0\0\0\0\0\0\0"..., 22250) =
22250
brk(0x8127000)                          = 0x8127000
brk(0x812a000)                          = 0x812a000
brk(0x812b000)                          = 0x812b000
lseek(5, 4351832, SEEK_SET)             = 4351832
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\0*", 4)                   = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0TJ", 4)                    = 4
select(6, [5], NULL, NULL, {5, 0})      = 1 (in [5], left
{5, 0})
read(5, "\0\0\3\350\0\0\0\6\0\0\0\0\0\0\0"..., 22250) =
22250
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
[root@ps1 temp]#

## Moving onto an older 5.2 machine,

[root@opllinux5 temp]# rpm --version
RPM version 2.5.2
[root@opllinux5 temp]# rpm -i --prefix=/home/tim/latest
openlink-odbcsdk-3.2-1.i
386-glibc2.rpm
[root@opllinux5 temp]#

Comment 1 Jeff Johnson 1999-03-31 18:01:59 UTC
You are correct. Later versions of rpm have disabled --prefix
and print the message
	--prefix is broke, use --relocate /oldpath=/newpath instead

The --prefix option will either be fixed or removed in rpm-3.0.

Comment 2 Jeff Johnson 1999-05-30 21:37:59 UTC
The prefix option has been fixed in rpm-3.0.1.


Note You need to log in before you can comment on or make changes to this bug.