recent rh9 updates broke rpm?

Damian Menscher menscher at uiuc.edu
Thu Mar 10 04:46:11 UTC 2005


On Wed, 9 Mar 2005, Joe Pruett wrote:
> On Wed, 9 Mar 2005, Damian Menscher wrote:
>
>> Questions: Why did this affect only half of my machines?  How could the
>> RPM databases have been broken?  The update that seems to be killing
>> them is less-378-7.2.legacy, which has managed to get installed even on
>> two of the broken machines.
>>
>> Finally, I know the standard thing-to-do is rm -f /var/lib/rpm/__db* and
>> install a more recent version of rpm.  But I've already got rpm-4.2-1 on
>> these machines, so those locking issues shouldn't be causing a problem.
>> Besides, the reboot would have done that rm -f as part of rc.sysinit.
>>
>> Anyone else have this problem with this week's updates?  It'd be nice to
>> know that it's not just me....  Other suggestions also welcome.
>
> yep, i saw segfaults and hangs with less on a few of my legacy systems.
> rebuilddb cleaned it all up.

Talking to others, it's clear that there's some problem with the recent 
"less" rpm.  Here's an example:

# yum -y update
Gathering header information file(s) from server(s)
Server: Fedora Linux / stable for Red Hat Linux 9 (i386)
Server: Macromedia Flash Player for Red Hat Linux 9
Server: Red Hat Linux 9 (i386)
Server: Red Hat Linux 9 (i386) updates
Finding updated packages
Downloading needed headers
Resolving dependencies
Segmentation fault

Trying again with -d 10 it makes it further:
less 100 % done 1/2
while an strace shows it's hung on:
futex(0x40ec10d0, FUTEX_WAIT, 0, NULL

That was on a machine that had just finished an "rpm --rebuilddb" just 
to make sure there wasn't a pre-existing problem.

Another machine died also... I caught it segfaulting with the -d 10:
[snip]
localhdrpath= /var/cache/yum/redhat-os/headers/macutils-0-2.0b3-24.i386.hdr for macutils i386
localhdrpath= /var/cache/yum/fedora-stable/headers/netdiag-0-2.4-0.fdr.4.rh90.i386.hdr for netdiag i386
localhdrpath= /var/cache/yum/redhat-os/headers/pilot-link095-compat-1-0.9.5-22.i386.hdr for pilot-link095-compat i386
Segmentation fault

Finally, I tried (after again cleaning the rpm database):
# strace yum -d 10 -y update
[really huge snip]
pread(6, "\0\0\0\0\1\0\0\0\373\f\0\0\372\f\0\0\374\f\0\0\1\0\346"..., 4096, 13611008) = 4096
pread(6, "\0\0\0\0\1\0\0\0\374\f\0\0\373\f\0\0\375\f\0\0\1\0\346"..., 4096, 13615104) = 4096
pread(6, "\0\0\0\0\1\0\0\0\375\f\0\0\374\f\0\0\376\f\0\0\1\0\346"..., 4096, 13619200) = 4096
pread(6, "\0\0\0\0\1\0\0\0\376\f\0\0\375\f\0\0\377\f\0\0\1\0\346"..., 4096, 13623296) = 4096
pread(6, "\0\0\0\0\1\0\0\0\377\f\0\0\376\f\0\0\0\r\0\0\1\0\346\17"..., 4096, 13627392) = 4096
pread(6, "\0\0\0\0\1\0\0\0\0\r\0\0\377\f\0\0\1\r\0\0\1\0\346\17\0"..., 4096, 13631488) = 4096
pread(6, "\0\0\0\0\1\0\0\0\1\r\0\0\0\r\0\0\2\r\0\0\1\0\346\17\0\7"..., 4096, 13635584) = 4096
pread(6, "\0\0\0\0\1\0\0\0\2\r\0\0\1\r\0\0\3\r\0\0\1\0\346\17\0\7"..., 4096, 13639680) = 4096
pread(6, "\0\0\0\0\1\0\0\0\3\r\0\0\2\r\0\0\4\r\0\0\1\0\346\17\0\7"..., 4096, 13643776) = 4096
pread(6, "\0\0\0\0\1\0\0\0\4\r\0\0\3\r\0\0\5\r\0\0\1\0\346\17\0\7"..., 4096, 13647872) = 4096
pread(6, "\0\0\0\0\1\0\0\0\5\r\0\0\4\r\0\0\6\r\0\0\1\0\346\17\0\007"..., 4096, 13651968) = 4096
pread(6, "\0\0\0\0\1\0\0\0\6\r\0\0\5\r\0\0\7\r\0\0\1\0\346\17\0\7"..., 4096, 13656064) = 4096
pread(6, "\0\0\0\0\1\0\0\0\7\r\0\0\6\r\0\0\10\r\0\0\1\0\346\17\0"..., 4096, 13660160) = 4096
pread(6, "\0\0\0\0\1\0\0\0\10\r\0\0\7\r\0\0\t\r\0\0\1\0\346\17\0"..., 4096, 13664256) = 4096
pread(6, "\0\0\0\0\1\0\0\0\t\r\0\0\10\r\0\0\n\r\0\0\1\0\346\17\0"..., 4096, 13668352) = 4096
pread(6, "\0\0\0\0\1\0\0\0\n\r\0\0\t\r\0\0\v\r\0\0\1\0\346\17\0\7"..., 4096, 13672448) = 4096
pread(6, "\0\0\0\0\1\0\0\0\v\r\0\0\n\r\0\0\f\r\0\0\1\0\346\17\0\7"..., 4096, 13676544) = 4096
pread(6, "\0\0\0\0\1\0\0\0\f\r\0\0\v\r\0\0\r\r\0\0\1\0\346\17\0\7"..., 4096, 13680640) = 4096
pread(6, "\0\0\0\0\1\0\0\0\r\r\0\0\f\r\0\0\16\r\0\0\1\0\346\17\0"..., 4096, 13684736) = 4096
pread(6, "\0\0\0\0\1\0\0\0\16\r\0\0\r\r\0\0\17\r\0\0\1\0\346\17\0"..., 4096, 13688832) = 4096
pread(6, "\0\0\0\0\1\0\0\0\17\r\0\0\16\r\0\0\20\r\0\0\1\0\346\17"..., 4096, 13692928) = 4096
pread(6, "\0\0\0\0\1\0\0\0\20\r\0\0\17\r\0\0\21\r\0\0\1\0\346\17"..., 4096, 13697024) = 4096
pread(6, "\0\0\0\0\1\0\0\0\21\r\0\0\20\r\0\0\22\r\0\0\1\0\346\17"..., 4096, 13701120) = 4096
pread(6, "\0\0\0\0\1\0\0\0\22\r\0\0\21\r\0\0\23\r\0\0\1\0\346\17"..., 4096, 13705216) = 4096
pread(6, "\0\0\0\0\1\0\0\0\23\r\0\0\22\r\0\0\0\0\0\0\1\0\220\5\0"..., 4096, 13709312) = 4096
mmap2(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x41099000
munmap(0x41099000, 262144)              = 0
rt_sigprocmask(SIG_BLOCK, ~[], [33], 8) = 0
rt_sigprocmask(SIG_SETMASK, [33], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [33], 8) = 0
rt_sigprocmask(SIG_SETMASK, [33], NULL, 8) = 0
getgid32()                              = 0
getuid32()                              = 0
stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/var/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/var/lib/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/var/lib/rpm", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
access("/var/lib/rpm", W_OK)            = 0
access("/var/lib/rpm/__db.001", F_OK)   = 0
access("/var/lib/rpm/Requirename", F_OK) = 0
stat64("/var/lib/rpm/Requirename", {st_mode=S_IFREG|0644, st_size=225280, ...}) = 0
open("/var/lib/rpm/Requirename", O_RDONLY|O_LARGEFILE) = 12
fcntl64(12, F_SETFD, FD_CLOEXEC)        = 0
read(12, "\0\0\0\0\1\0\0\0\0\0\0\0a\25\6\0\10\0\0\0\0\20\0\0\0\10"..., 512) = 512
close(12)                               = 0
open("/var/lib/rpm/Requirename", O_RDONLY|O_LARGEFILE) = 12
fcntl64(12, F_SETFD, FD_CLOEXEC)        = 0
fstat64(12, {st_mode=S_IFREG|0644, st_size=225280, ...}) = 0
pread(12, "\0\0\0\0\1\0\0\0\0\0\0\0a\25\6\0\10\0\0\0\0\20\0\0\0\10"..., 4096, 0) = 4096
pread(12, "\0\0\0\0\1\0\0\0\35\0\0\0\0\0\0\0\0\0\0\0j\0R\4\0\2\373"..., 4096, 118784) = 4096
pread(6, "\0\0\0\0\1\0\0\0\363\1\0\0\0\0\0\0\364\1\0\0\1\0\346\17"..., 4096, 2043904) = 4096
pread(6, "\0\0\0\0\1\0\0\0\364\1\0\0\363\1\0\0\365\1\0\0\1\0\346"..., 4096, 2048000) = 4096
pread(6, "\0\0\0\0\1\0\0\0\365\1\0\0\364\1\0\0\366\1\0\0\1\0\346"..., 4096, 2052096) = 4096
pread(6, "\0\0\0\0\1\0\0\0\367\1\0\0\366\1\0\0\370\1\0\0\1\0\346"..., 4096, 2060288) = 4096
pread(6, "\0\0\0\0\1\0\0\0\370\1\0\0\367\1\0\0\371\1\0\0\1\0\346"..., 4096, 2064384) = 4096
pread(6, "\0\0\0\0\1\0\0\0\371\1\0\0\370\1\0\0\372\1\0\0\1\0\346"..., 4096, 2068480) = 4096
pread(6, "\0\0\0\0\1\0\0\0\372\1\0\0\371\1\0\0\373\1\0\0\1\0\346"..., 4096, 2072576) = 4096
pread(6, "\0\0\0\0\1\0\0\0\373\1\0\0\372\1\0\0\374\1\0\0\1\0\346"..., 4096, 2076672) = 4096
pread(6, "\0\0\0\0\1\0\0\0\374\1\0\0\373\1\0\0\375\1\0\0\1\0\346"..., 4096, 2080768) = 4096
pread(6, "\0\0\0\0\1\0\0\0\375\1\0\0\374\1\0\0\376\1\0\0\1\0\346"..., 4096, 2084864) = 4096
pread(6, "\0\0\0\0\1\0\0\0\376\1\0\0\375\1\0\0\377\1\0\0\1\0\346"..., 4096, 2088960) = 4096
pread(6, "\0\0\0\0\1\0\0\0\377\1\0\0\376\1\0\0\0\2\0\0\1\0\346\17"..., 4096, 2093056) = 4096
pread(6, "\0\0\0\0\1\0\0\0\0\2\0\0\377\1\0\0\1\2\0\0\1\0\346\17\0"..., 4096, 2097152) = 4096
pread(6, "\0\0\0\0\1\0\0\0\1\2\0\0\0\2\0\0\2\2\0\0\1\0\346\17\0\7"..., 4096, 2101248) = 4096
pread(6, "\0\0\0\0\1\0\0\0\2\2\0\0\1\2\0\0\3\2\0\0\1\0\346\17\0\7"..., 4096, 2105344) = 4096
pread(6, "\0\0\0\0\1\0\0\0\3\2\0\0\2\2\0\0\4\2\0\0\1\0\346\17\0\7"..., 4096, 2109440) = 4096
pread(6, "\0\0\0\0\1\0\0\0\4\2\0\0\3\2\0\0\5\2\0\0\1\0\346\17\0\7"..., 4096, 2113536) = 4096
pread(6, "\0\0\0\0\1\0\0\0\5\2\0\0\4\2\0\0\6\2\0\0\1\0\346\17\0\7"..., 4096, 2117632) = 4096
pread(6, "\0\0\0\0\1\0\0\0\6\2\0\0\5\2\0\0\7\2\0\0\1\0\346\17\0\7"..., 4096, 2121728) = 4096
pread(6, "\0\0\0\0\1\0\0\0\7\2\0\0\6\2\0\0\10\2\0\0\1\0\346\17\0"..., 4096, 2125824) = 4096
pread(6, "\0\0\0\0\1\0\0\0\10\2\0\0\7\2\0\0\t\2\0\0\1\0\346\17\0"..., 4096, 2129920) = 4096
pread(6, "\0\0\0\0\1\0\0\0\t\2\0\0\10\2\0\0\n\2\0\0\1\0\346\17\0"..., 4096, 2134016) = 4096
pread(6, "\0\0\0\0\1\0\0\0\n\2\0\0\t\2\0\0\v\2\0\0\1\0\346\17\0\7"..., 4096, 2138112) = 4096
pread(6, "\0\0\0\0\1\0\0\0\v\2\0\0\n\2\0\0\f\2\0\0\1\0\346\17\0\7"..., 4096, 2142208) = 4096
pread(6, "\0\0\0\0\1\0\0\0\f\2\0\0\v\2\0\0\r\2\0\0\1\0\346\17\0\7"..., 4096, 2146304) = 4096
pread(6, "\0\0\0\0\1\0\0\0\r\2\0\0\f\2\0\0\16\2\0\0\1\0\346\17\0"..., 4096, 2150400) = 4096
pread(6, "\0\0\0\0\1\0\0\0\16\2\0\0\r\2\0\0\17\2\0\0\1\0\346\17\0"..., 4096, 2154496) = 4096
pread(6, "\0\0\0\0\1\0\0\0\17\2\0\0\16\2\0\0\20\2\0\0\1\0\346\17"..., 4096, 2158592) = 4096
pread(6, "\0\0\0\0\1\0\0\0\20\2\0\0\17\2\0\0\21\2\0\0\1\0\346\17"..., 4096, 2162688) = 4096
pread(6, "\0\0\0\0\1\0\0\0\21\2\0\0\20\2\0\0\22\2\0\0\1\0\346\17"..., 4096, 2166784) = 4096
pread(6, "\0\0\0\0\1\0\0\0\22\2\0\0\21\2\0\0\23\2\0\0\1\0\346\17"..., 4096, 2170880) = 4096
pread(6, "\0\0\0\0\1\0\0\0\23\2\0\0\22\2\0\0\0\0\0\0\1\0\200\n\0"..., 4096, 2174976) = 4096
mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x41099000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++


My machines are all running kernel-smp-2.4.20-42.9.legacy with 
yum-2.0.4-2 and rpm-4.2-1.  Has anyone seen this on a NON-smp machine? 
Or with yum-2.0.5?  I'm hoping to narrow down the bug a bit further.

Damian Menscher
-- 
-=#| Physics Grad Student & SysAdmin @ U Illinois Urbana-Champaign |#=-
-=#| 488 LLP, 1110 W. Green St, Urbana, IL 61801 Ofc:(217)333-0038 |#=-
-=#| 4602 Beckman, VMIL/MS, Imaging Technology Group:(217)244-3074 |#=-
-=#| <menscher at uiuc.edu> www.uiuc.edu/~menscher/ Fax:(217)333-9819 |#=-
-=#| The above opinions are not necessarily those of my employers. |#=-




More information about the fedora-legacy-list mailing list