Re: How does --rebuilddb work when the db is completely unreadable?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 19 Jan 2017, John Walker wrote:

I'm troubleshooting a problem with rpm 4.11.3.  I'd like to know a bit more about what
--rebuilddb actually does.  From the source(https://github.com/rpm-software-management/rpm/blob/rpm-4.11.3-release/lib/rpmdb.c#L28
41), it looks like it just checks each entry in the package database to make sure it has
certain fields.

From its behavior though, I suspect it is doing more.  For example, I can run rpm
--dbpath <old_rpm_db> --rebuilddb on a db-created by rpm 4.8, which is a db4 format and
completely unreadable to rpm 4.11.  Somehow, in this situation, rpm 4.11 will produce a
new (but inaccurate) db.  

If anyone can give me any insight about how rpm rebuilds its database, or point me to
relevant portions of the source, I would appreciate it.  

It reads the data records, ignoring any indexes, and creates a new
database from scratch.  While reading the data records, it discards
those that fail basic sanity checks.

--
	      Stuart D. Gathman <stuart@xxxxxxxxxxx>
"Confutatis maledictis, flamis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux