Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Fedora Build System (http://www.linux-archive.org/fedora-build-system/)
-   -   corrupt rpmdb in mock-chroot (http://www.linux-archive.org/fedora-build-system/99017-corrupt-rpmdb-mock-chroot.html)

Paul B Schroeder 05-31-2008 11:04 PM

corrupt rpmdb in mock-chroot
 
Hello all...

On my x86_64 (CentOS 5.1) system I use mock to init an i386 chroot for
both Fedora 8 and CentOS 5.1. The init appears to work fine, but when I
drop into a mock-shell for either F8 or CentOS my rpm database is
corrupt on both accounts:

mock-chroot> rpm -qa
rpmdb: Program version 4.3 doesn't match environment version
error: db4 error(-30974) from dbenv->open: DB_VERSION_MISMATCH: Database
environment version mismatch
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm

Rebuilding the rpm database seems to fix this, but it's a pain to be
sure. Any ideas as to why I'm seeing this corruption when creating an
i386 mock chroot from a x86_64 system?


Also, FYI, when I do this for x86_64 chroots or if I do this from my
i386 CentOS system, the rpm database does not get corrupt.

Thanks...Paul...

--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list

"Jon Stanley" 06-01-2008 02:16 AM

corrupt rpmdb in mock-chroot
 
On Sat, May 31, 2008 at 7:04 PM, Paul B Schroeder
<paul.schroeder@bluecoat.com> wrote:

>
> Rebuilding the rpm database seems to fix this, but it's a pain to be
> sure. Any ideas as to why I'm seeing this corruption when creating an
> i386 mock chroot from a x86_64 system?

This is normal and expected. You created the rpmdb with x86_64 rpm,
and are accessing it with i386 rpm. The Berkeley DB format is
different based on the arch of the creating machine, therefore
generates the database differently on the two platforms. If I plan on
doing anything in a chroot (especially a non-native arch one) other
than building a SRPM, the first thing that happens is to rm -f
/var/lib/rpm/__db*. Don't worry, this got me the first time too (and
is fatal to a pungi compose) :)

--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list

Paul B Schroeder 06-02-2008 12:19 PM

corrupt rpmdb in mock-chroot
 
On Sat, 2008-05-31 at 22:16 -0400, Jon Stanley wrote:
> On Sat, May 31, 2008 at 7:04 PM, Paul B Schroeder
> <paul.schroeder@bluecoat.com> wrote:
>
> >
> > Rebuilding the rpm database seems to fix this, but it's a pain to be
> > sure. Any ideas as to why I'm seeing this corruption when creating an
> > i386 mock chroot from a x86_64 system?
>
> This is normal and expected. You created the rpmdb with x86_64 rpm,
> and are accessing it with i386 rpm. The Berkeley DB format is
> different based on the arch of the creating machine, therefore
> generates the database differently on the two platforms. If I plan on
> doing anything in a chroot (especially a non-native arch one) other
> than building a SRPM, the first thing that happens is to rm -f
> /var/lib/rpm/__db*. Don't worry, this got me the first time too (and
> is fatal to a pungi compose) :)
Ah.. I see.. I would think there would be some way to tell it to
create the DB in i386 format though? Is there an environment variable
or something that can be set?


--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list

Dennis Gilmore 06-02-2008 01:25 PM

corrupt rpmdb in mock-chroot
 
On Monday 02 June 2008, Paul B Schroeder wrote:
> On Sat, 2008-05-31 at 22:16 -0400, Jon Stanley wrote:
> > On Sat, May 31, 2008 at 7:04 PM, Paul B Schroeder
> >
> > <paul.schroeder@bluecoat.com> wrote:
> > > Rebuilding the rpm database seems to fix this, but it's a pain to be
> > > sure. Any ideas as to why I'm seeing this corruption when creating an
> > > i386 mock chroot from a x86_64 system?
> >
> > This is normal and expected. You created the rpmdb with x86_64 rpm,
> > and are accessing it with i386 rpm. The Berkeley DB format is
> > different based on the arch of the creating machine, therefore
> > generates the database differently on the two platforms. If I plan on
> > doing anything in a chroot (especially a non-native arch one) other
> > than building a SRPM, the first thing that happens is to rm -f
> > /var/lib/rpm/__db*. Don't worry, this got me the first time too (and
> > is fatal to a pungi compose) :)
>
> Ah.. I see.. I would think there would be some way to tell it to
> create the DB in i386 format though? Is there an environment variable
> or something that can be set?

No, the hosts rpm is used to populate the chroot. when you enter the chroot
you can delete /var/lib/rpm/__db* and things will work.

You get the same issues with building say F-7 chroots on a F-9 host where the
chroot has a different version of the the database than the host.

Dennis

--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list


All times are GMT. The time now is 05:57 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.