Red Hat Bugzilla – Bug 75403
rpmq segfault on DB close.
Last modified: 2008-05-01 11:38:04 EDT
% rpm -qf /usr/lib/rpm/perl.req
Segmentation fault (core dumped)
(gdb) run -q --file /usr/lib/rpm/perl.req
Starting program: /usr/lib/rpm/rpmq -q --file /usr/lib/rpm/perl.req
[New Thread 8192 (LWP 17771)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 8192 (LWP 17771)]
0x42074005 in _int_free () from /lib/i686/libc.so.6
#0 0x42074005 in _int_free () from /lib/i686/libc.so.6
#1 0x42074a2c in free () from /lib/i686/libc.so.6
#2 0x400bde54 in db3Free () from /usr/lib/librpmdb-4.1.so
#3 0x400cf63a in db3close () from /usr/lib/librpmdb-4.1.so
#4 0x400c7c84 in rpmdbClose () from /usr/lib/librpmdb-4.1.so
#5 0x40087e78 in rpmtsCloseDB () from /usr/lib/librpm-4.1.so
#6 0x40088f42 in rpmtsFree () from /usr/lib/librpm-4.1.so
#7 0x08049708 in main ()
#8 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
% rpm -q rpm glibc
P.S. Reproducible 100%.
What happens if you do --rebuilddb?
Hm, somehow never though of that. --rebuilddb indeed made this go away, although
it's still not clear what caused it in the first place. This system was upgraded
from 7.2 to 8.0 (using the anaconda installer).
I can't tell what caused the problem either.
I can say that, for packages that have header-only
signatures, segfaults due to bad data retrieved
should be a thing of the past.