Red Hat Bugzilla – Bug 57523
RPM mangles it's database
Last modified: 2008-05-01 11:38:01 EDT
Description of Problem:
On all systems that I've upgraded from 7.1, I have found that once in a while, when doing
it hangs in the middle of the command. Also, when removing packages, sometimes it complains about some db3-related stuff and the package does not get removed properly. I /think/ the files disappear, but the entry does not disappear from the rpm db. Both of these issues are fixed by
This is only a workaround, since I don't want to have to periodically run such a command in order to keep rpm working. I didn't have to do that with previous versions of RedHat, so why should I have to do it now.
Version-Release number of selected component (if applicable):
RPM version 4.0.3
Most of the time
Steps to Reproduce:
1.Upgrade an existing 7.1 system to 7.2
2.Try doing rpm -qa and watch it hang.
3.Failing that, try using rpm for a prolonged period of time.
'rpm -qa' hung. 'rpm -e' didn't work properly.
rpm should work perfectly and not shoot its own database.
rm -f /var/lib/rpm/__db*
to remove cache files.
That didn't fix the problem. Not only that, others who have installed RedHat from scratch, not as an upgrade, told me about RPMs suddenly disappearing, RPMs that are not installed showing up in the list, even rpm --rebuilddb failing and so on. This is a really Bad Thing. RPM is one of the very important things that make Linux user-friendly, especially with Red Carpet to help out, so this is a serious impediment.
RPM is broken, plain and simple.
How did removing the /var/lib/rpm/__db* files not fix your problem?
It didn't fix it in that rpm -qa hung shortly thereafter, forcing me to do another --rebuilddb, and so on.
So it fixed the problem but your problem reoccurred?
The cause is doing ^C (I suspect). Also a --rebuilddb is not necessary, only
I can confirm the behaviour, and repeat it. Typing ^C during rpm -qa breaks it
every time. any other rpm -qa locks up at the point where the prvious ^C
This problem will be fixed when concurrent rpmdb
access is permitted.