[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rpm-devel
Subject:    rpmdb corruption with 5.3.8
From:       Bernhard Rosenkraenzer <bero () arklinux ! org>
Date:       2011-02-22 11:32:43
Message-ID: 20110222113242.D5875778A9 () rpm5 ! org
[Download RAW message or body]

Hi,
We've just run into a seemingly unfixable rpmdb corruption inside our build system \
(--> lots of installed packages and lots of activity) on x86_32.

rpm -q and friends are still working, but when trying to modify anything in the rpmdb \
(e.g. installing a new package), this happens:


Preparing...                ########################################### [100%]
rpmdb: not a restored transaction
rpmdb: PANIC: Invalid argument
==> rpmdbe_event_notify(0x9833aa8, PANIC(0), 0xbfe2b5d4) app_private (nil)
rpmdb: PANIC: fatal region error detected; run recovery
==> rpmdbe_event_notify(0x9833aa8, PANIC(0), 0xbfe2b6cc) app_private (nil)
   1:xorg                   ########################################### [ 20%]
rpmdb: PANIC: fatal region error detected; run recovery
==> rpmdbe_event_notify(0x9833aa8, PANIC(0), 0xbfe2b5bc) app_private (nil)
rpmdb: PANIC: fatal region error detected; run recovery
==> rpmdbe_event_notify(0x9833aa8, PANIC(0), 0xbfe2b50c) app_private (nil)
error: db3copen:db3.c:1248: db->cursor(-30973): DB_RUNRECOVERY: Fatal error, run \
                database recovery
rpmdb: illegal flag specified to DB->get
error: db3cget:db3.c:1305: db->get(22): Invalid argument
error: error(22) getting records from Name index
rpmdb: PANIC: fatal region error detected; run recovery
==> rpmdbe_event_notify(0x9833aa8, PANIC(0), 0xbfe2b72c) app_private (nil)
rpmdb: PANIC: fatal region error detected; run recovery
==> rpmdbe_event_notify(0x9833aa8, PANIC(0), 0xbfe2b61c) app_private (nil)
error: db3copen:db3.c:1248: db->cursor(-30973): DB_RUNRECOVERY: Fatal error, run \
                database recovery
rpmdb: illegal flag specified to DB->get
error: db3cget:db3.c:1305: db->get(22): Invalid argument
[...]


I've tried fixing the rpmdb the obvious ways, e.g.

cd /var/lib/rpm
db_recover
rpm --rebuilddb

and also the more forceful way

cd /var/lib/rpm
db_recover; db_checkpoint -1; db_archive
for i in *; do [ -d "$i" ] && continue; [ "$i" = "DB_CONFIG" ] && continue; db_dump \
$i >$i.dump; done for i in *.dump; do rm -f ${i/.dump/}; db_load ${i/.dump/} <$i; rm \
$i; done rpm --rebuilddb

But the problem stays the same.

Any ideas?

ttyl
bero
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic