RPM limitations at kickstart time?

Hal Wine hal at reactivity.com
Fri Jan 14 17:09:25 UTC 2005


Oden, James wrote, around 01/13/2005 07:34 PM:
>>[mailto:kickstart-list-bounces at redhat.com] 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




More information about the Kickstart-list mailing list