yum update: Fatal error, run database recovery ??

Panu Matilainen pmatilai at laiskiainen.org
Tue Apr 21 14:35:40 UTC 2009


On Tue, 21 Apr 2009, Panu Matilainen wrote:

> On Tue, 21 Apr 2009, Richard Hughes wrote:
>
>> On Tue, 2009-04-21 at 08:35 -0400, Seth Vidal wrote:
>>> Safe how? It's likely the package won't be rebuilt properly but it
>>> shouldn't damage anything other than the pkg it is trying to rebuild.
>> 
>> Cool, that's what I wanted to know. PackageKit allows the user to cancel
>> the transaction when the package is being rebuilt, and I wondered if
>> this could cause the rpmdb corruption people are seeing. I guess this
>> isn't the case.
>
> Well... that all depends whether the rpmdb is open when the packages are 
> getting rebuilt or not.

Or actually more to the point: sending SIGINT or SIGTERM is fine, rpm 
blocks that when the db is open. But sending a SIGKILL (like PK does if 
the backend doesn't terminate quickly) is just Russian roulette - 
sometimes you get away with it, sometimes you dont.

If SIGKILL happens while rpm is running inside db4 code, with current rpm 
+ db4 combination you'll get one of these:

rpmdb: Thread/process 16507/3086059200 failed: Thread died in Berkeley DB
library
error: db4 error(-30975) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, 
run database recovery

Previously (eg in F9) you'd just have a dead rpm which hangs when you try 
to access it.

 	- Panu -




More information about the fedora-test-list mailing list