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.