[ale] RPM DB Problems

Michael Golden naugrimk at yahoo.com
Sun Mar 3 19:44:25 EST 2002


> You can probably still use apt; <http://apt-rpm.tuxfamily.org/> lists a
> Mandrake mirror which support apt, and I'd guess there are others.

	I subscribe to the Mandrake Cooker development list and this issue has
gone through there before. None of the mirrors currently support apt
because for some reason they stopped updating the package lists that apt
uses and urpmi uses a different format. This occured sometime around
December or January.

> > [root at naugrim michael]# rpm --initdb
> > rpmdb: Overflow page 2070 of invalid type
> > rpmdb: Overflow page 2605 of invalid type
> > error: db3 error(-30985) from db->verify: DB_VERIFY_BAD: Database
> > verification failed
> > [root at naugrim michael]# rpm --rebuilddb
> > error: rpmdb: damaged header instance #357 retrieved, skipping.
> > Segmentation fault
> 
> Jeff Johnson regularly posts his guide to fixing corrupted rpmdb (since it's
> the question he gets asked at least once a week ;-).  Here's the relevant
> portion of a copy of it I saved:

	Thanks. I had found an incomplete copy of this via google which
included only step 0 and part of step 1. The information included in
step 1 was able to fix the problem that manifests itself after every
install and is shown above by "rpm --initdb". 

> 3) You have a segfault on a header.
(...)
>         Try "rpm -qa", lots of boring glop until segfault.
>         On the screen will be something like
>     ...
>     Get Packages key (0x8216580,4) data (0x4014f008,155244) "#612" 47000000 
> rc
> 0kernel-enterprise-2.4.9-26beta.17
>     Get Packages key ((nil),0) data ((nil),0) "" deadbeef rc -30990
>     <segfault here>

My last line actually looks like this: (there is no nil stuff at all)

kdetoys3-3.0-0.beta2.1mdk
    Get Packages key (0x805d608,4) data (0x40384008,6024) "#493"
3b000000 rc 0
Segmentation fault

> 
>         The 2nd to last "Get Packages" line is what you want, the
>         bad header instance above is "612" in decimal. Note the
>         package name-version-release, you'll want to reinstall
>         that package somewhen.
> 
> 4) Nuke the bad header.
>         I usually whip out my handy-dandy header instance deleter,
>         edit the bad record into the source, compile, run, and go back
>         to step 2).

I have run this over and over again. It does not appear to ever actually
delete the header because when I run "rpm -qa" again I get the same
error with the same package except that the header instance number has
moved up by 4. I repeat with the new number and it again moves up by 4.

One bit of information that may or may not have caused or influenced
this. The header it is getting stuck on is kdetoys3. I had kde3 beta
installed before via rpm. Then while doing a download or something else
I realized that I was going to run out of space and needed to clear some
in a very time sensitive manner. I didn't use kde3 much and so I decided
it could go because it would give me a lot of space. I did not have time
to properly remove it with rpm but instead issued an "rpm -rf /opt/kde3"
on it. I'm pretty sure that later I gave an "rpm -e" to the names of
most of the kde3 packages to remove the listing too but I don't recall
whether I did that to kdetoys3 also or not. I have tried reinstalling
the kdetoys3 package (with --nodeps to avoid reinstalling all of kde3)
and then uninstalling with "rpm -e" to see if I couldn't get that to
clear it but it doesn't help.

Any new ideas?


-- 
Michael Golden <naugrimk at yahoo.com>
GnuPG Public Key: 1F8BDBDE

 This is a digitally signed message part




More information about the Ale mailing list