Troubles running F9 mock chroot under F11

Panu Matilainen pmatilai at laiskiainen.org
Thu Sep 17 11:40:19 UTC 2009


On Wed, 16 Sep 2009, devzero2000 wrote:

> On Wed, Sep 16, 2009 at 3:31 PM, Jan Kratochvil
> <jan.kratochvil at redhat.com> wrote:
> > Hi,
> >
> > filed as:
> >        https://bugzilla.redhat.com/show_bug.cgi?id=523698
> >
> > how to possibly fix the problem by a backport from rpm5.org as
> suggested by
> > Jeff Johnson.
> >
> For rpm 4.4 the backport was already filled but reject.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=464752

Since you apparently missed the point: the WONTFIX is for that particular 
patch, not the issue itself. Also the bug is against RHEL 5, we're talking 
Fedora here.

The suggested patch is patently unsafe as it just blasts away any 
incompatible environment without caring whether the environment is 
actually in use by a different rpm version (which can happen in chroot 
environments and during upgrades) or not. It also blasts away the 
transaction lock while at it.

Citing BDB documentation: "The result of attempting to forcibly destroy 
the environment when it is in use is unspecified. Processes using an 
environment often maintain open file descriptors for shared regions within 
it. On UNIX systems, the environment removal will usually succeed, and 
processes that have already joined the region will continue to run in that 
region without change. However, processes attempting to join the 
environment will either fail or create new regions."

And yes, "funny stuff" happens when you got two different rpm/db versions 
accessing the same db. Feel free to try it out, you dont need to take my 
word for it.

That rpm leaves the environment around even when not in use, causing these 
silly issues is largely because the rpmdb open+close is racy. It's racy 
even with the environment present, just to a lesser degree so it usually 
gets away with it. Fixing the raciness will allow removing the environment 
when not in use, mostly curing the disease instead of treating the 
symptom. In addition to that, detecting and removing an incompatible (or 
corrupted) enviroment is a perfectly reasonable thing to do IF appropriate 
care is taken not to remove an active but incompatible environment.

 	- Panu -




More information about the fedora-devel-list mailing list