If for some reason your server’s disk I/O fails during a yum or RPM manipulation, you can see the following error whenever you run yum or rpc:
# yum update ... rpmdb: page 18816: illegal page type or format rpmdb: PANIC: Invalid argument rpmdb: Packages: pgin failed for page 18816 error: db4 error(-30974) from dbcursor->c_get: DB_RUNRECOVERY: Fatal error, run database recovery rpmdb: PANIC: fatal region error detected; run recovery error: db4 error(-30974) from dbcursor->c_close: DB_RUNRECOVERY: Fatal error, run database recovery No Packages marked for Update rpmdb: PANIC: fatal region error detected; run recovery error: db4 error(-30974) from db->close: DB_RUNRECOVERY: Fatal error, run database recovery rpmdb: PANIC: fatal region error detected; run recovery error: db4 error(-30974) from db->close: DB_RUNRECOVERY: Fatal error, run database recovery rpmdb: File handles still open at environment close rpmdb: Open file handle: /var/lib/rpm/Packages rpmdb: Open file handle: /var/lib/rpm/Name rpmdb: PANIC: fatal region error detected; run recovery error: db4 error(-30974) from dbenv->close: DB_RUNRECOVERY: Fatal error, run database recovery
The fix is, thankfully, rather easy: remove the RPM database, rebuild it and let yum download all the mirror’s file lists.
$ mv /var/lib/rpm/__db* /tmp/ $ rpm --rebuilddb $ yum clean all
The commands above are safe to run. If for some reason this does not fix, you can get the files back from the /tmp
path where they were moved.