Oden, James wrote, around 01/13/2005 07:34 PM:
[mailto:kickstart-list-bounces@xxxxxxxxxx] On Behalf Of Hal Wine
Subject: RPM limitations at kickstart time?
with rpm 4.2.3-10 (RHEL 3 ES update 3), I'm seeing rpm database
corruption when having an RPM install another RPM in a %post scriptlet
during kickstart.
Could you characterize these corruptions? Do you just have stale locks,
or is the
data itself corrupted, and in what way if you can tell?
It's corrupted so bad that packages fail to install :(
The log file /root/install.log showed numerous error messages. Starting
with the package _after_ the one that sub-installs another RPM, I see
repeated sequences like (92 lines total):
Installing libcap-1.10-15.1.i386.
error: db4 error(-30989) from dbcursor->c_put: DB_PAGE_NOTFOUND:
Requested page not found
error: db4 error(-30982) from db->sync: DB_RUNRECOVERY: Fatal error, run
database recovery
error: db4 error(-30982) from dbcursor->c_close: DB_RUNRECOVERY: Fatal
error, run database recovery
error: db4 error(-30982) from db->sync: DB_RUNRECOVERY: Fatal error, run
database recovery
error: db4 error(-30982) from db->cursor: DB_RUNRECOVERY: Fatal error,
run database recovery
error: db4 error(-30982) from db->get: DB_RUNRECOVERY: Fatal error, run
database recovery
error: error(-30982) getting "libcap" records from Name index
error: db4 error(-30982) from db->sync: DB_RUNRECOVERY: Fatal error, run
database recovery
After the install completes, and the box reboots,
/usr/lib/rpm/rpmdb_verify doesn't report any problems with any db file
in /var/lib/rpm
There are 3 rpms scheduled to be installed after the one that installs
the subpackge. The first two (libpcap, ntp) fail, the final one (comps)
succeeds.
Installations without the wrapper/subinstall package work fine (and have
for eons).
In this case, the package to be subinstalled is a stock RHEL one:
sendmail-cf. It is installed just find, as is the "wrapper" rpm. Both
pass 'rpm -V' after installation.
Permitted and widely used such that it could claimed to be rock solid
are two different things, but then how is going to get used if there
aren't guinea pigs (-;
Yah, I've got a *very* ugly workaround that I had been using from the AS
2.1 days (which had too old of a version of RPM to consider this
approach). The good news it that the feature works outside of anaconda,
so my ugly workaround is now more robust :/
Thanks,
--Hal