[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Troubles running F9 mock chroot under F11

On Wed, 16 Sep 2009, devzero2000 wrote:

On Wed, Sep 16, 2009 at 3:31 PM, Jan Kratochvil
<jan kratochvil 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.


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 -

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]