Should RPM check its database?

Jim Cornette fc-cornette at insight.rr.com
Sat Nov 18 02:08:38 UTC 2006


Tony Nelson wrote:
> Should RPM check its database periodically?  (Currently I don't believe it
> does.)  It would be helpful if, say, there were a daily cron task that
> syslog'ed and / or emailed root if there were a problem with the RPM
> database.  The check appears to be pretty fast.  The following takes well
> under a minute on my old machine:
> 
>     []# cd /var/lib/rpm ; for name in * ; do echo $name ; /usr/lib/rpm/rpmdb_verify $name ; done
> 
> Note that this appears to only check the individual files' integrity, and
> not for referential integrity.
> 
> It may be necessary to lock the database before checking it; if so,
> whatever in RPM that is supposed to run rpmdb_verify probably already does
> so.  (I didn't see anything in man rpm about this, only about verifying
> packages.)
> 
> While I'm at it, should Anaconda check the RPM database before doing an
> upgrade, and offer to repair the database if there is a problem and the
> Packages file is OK?

There is a fear with the common user to be afraid of too much 
information. I guess rhgb is designed for that. A quiet check of the 
database and compaction before an upgrade should speed up the upgrade 
process since there would be less seeking of records during 
installation. An RFE to add a pre-upgrade check of the database sounds 
productive and maybe even will speed up the process of upgrading. I 
don't know if fragmented records exist in the rpmdb or not. I suppose 
they do.

> 
> Should the Installation Guide suggest checking the RPM database before
> upgrading?

I think that this suggestion is good since someone ended up with a very 
large log file because of corruption. The file probably is sort of 
fragmented when transactions are added and removed frequently to the 
records.


> 
> I'll decide what to RFE in Bugzilla based partly on feedback here.

Great ideas! Thanks!
Jim

-- 
Life is a healthy respect for mother nature laced with greed.




More information about the users mailing list