Re: subtle issue with systemd, dnf 'greedy' obsoletes behaviour, and multiple repos

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

 



On Tue, 2020-06-02 at 06:37 +0000, Zbigniew Jędrzejewski-Szmek wrote:
> On Mon, Jun 01, 2020 at 02:10:12PM -0700, Adam Williamson wrote:
> > Hi folks! openQA caught a subtle issue in a systemd update over the
> > weekend, and I thought it would be worth flagging up here both to let
> > people know about it and also to see if anyone has a better solution
> > than the one I came up with.
> > 
> > The issue affects this systemd update for F32:
> > https://bodhi.fedoraproject.org/updates/FEDORA-2020-dd43dd05b1
> > that update provides systemd-245.6-1.fc32 . The stable release of
> > Fedora 32 contains systemd-245.4-1.fc32.
> 
> Hi Adam,
> 
> thanks for the deep investigation (and also for setting up onenqa in the
> first place, I don't think we'd have caught the issue otherwise.)
> 
> > Another factor here is that DNF's behaviour when multiple different
> > available packages obsolete an installed package on update is 'greedy'.
> > If 'bar', 'moo' and 'meep' all obsolete 'foo' and are available on
> > update, DNF will try to install *all three*. This is intentional and
> > necessary when e.g. a package is split in two and we want both the new
> > packages to be installed in place of the old one. (If it's just
> > multiple available versions of the *same* package that all obsolete an
> > installed package, DNF will simply try to select the newest one as part
> > of the update, which is fine).
> 
> I think this "greedy" behaviour is correct: we rely on this to allow
> package splits. There was some discussion whether dnf is in the wrong here,
> but it seems to be doing everything correctly.

I can think of potential refinements to dnf's behaviour here, though I
imagine the internal ordering of this whole dependency resolution
process is a bunch of fun already. As a dumb simplification you could
float: "only consider the *highest available version* of any given
package as a candidate for obsoleting other packages", though I think
it is too simple: what if we're in a case where the newer build of
package Z in updates-testing has problems, so outside of Obsoletes:
questions dnf would choose to update to the older build of package Z in
updates? Still, it feels like an area where it *should* be possible to
improve dnf's behaviour somehow. (though I guess this may well be in
libsolv anyway).

> > the solution I was able to find that works is to have systemd-
> > udev Obsoletes: systemd < 245.6-1. This seems to correctly clue DNF in
> > to the situation and cause it to leave out anything from 245.4-1.fc32
> > in the upgrade.
> 
> Yep, this sounds like the correct solution. systemd-udev Requires systemd,
> and systemd is only provided by systemd, so there doesn't seem to be any
> chance of systemd getting uninstalled.

Great. I see you went ahead and did that, so it looks like we're good
now. Thanks!
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux