Bug 2052433 - F35 with mlocate installed cannot be upgraded to F36 due to conflict with plocate
Summary: F35 with mlocate installed cannot be upgraded to F36 due to conflict with plo...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: mlocate
Version: 36
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Michal Sekletar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: AcceptedBlocker
Depends On:
Blocks: F36BetaBlocker 2030710
TreeView+ depends on / blocked
 
Reported: 2022-02-09 09:34 UTC by Lukas Ruzicka
Modified: 2022-06-20 13:51 UTC (History)
10 users (show)

Fixed In Version: mlocate-0.26-46.fc37 mlocate-0.26-46.fc36 mlocate-0.26-47.fc37 mlocate-0.26-300.fc37 mlocate-0.26-300.fc36
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-03-10 07:06:28 UTC
Type: Bug


Attachments (Terms of Use)

Description Lukas Ruzicka 2022-02-09 09:34:32 UTC
Description of problem:

When attempting to upgrade F35 to the branched F36, dnf complains about plocate and mlocate saying that

plocate-1.1.13-5 conflicts with mlocate-0.26-32

and mlocate-0.26-31 does not belong to a distupgrade repository


Version-Release number of selected component (if applicable):
see above

How reproducible:
Always


Steps to Reproduce:
1. Use `dnf system-upgrade download --releasever=36` to upgrade the system

Actual results:
System cannot be upgraded without `--allowerasing`

Expected results:

System can be upgraded normally.

Comment 1 Fedora Blocker Bugs Application 2022-02-17 17:49:20 UTC
Proposed as a Blocker for 36-beta by Fedora user bcotton using the blocker tracking app because:

 For each one of the release-blocking package sets, it must be possible to successfully complete a direct upgrade from a fully updated, clean default installation of each of the last two stable Fedora releases with that package set installed. 
https://fedoraproject.org/wiki/Fedora_36_Beta_Release_Criteria#Upgrade_requirements

Comment 2 Adam Williamson 2022-02-17 18:09:00 UTC
What kind of F35 install did you start with?

Best as I can tell, this might be caused by dnf trying to pull in plocate because it's been added to the 'standard' group in comps. Neither of the spec files seems to have changed.

This *may* play out differently if mlocate adds an explicit conflict with plocate; it does not appear to have one ATM.

Comment 3 Ben Cotton 2022-02-17 18:13:43 UTC
This is a basically untouched F35 VM that I used for testing just before F35 Final. I applied all available updates and rebooted before trying the system-upgrade. FWIW, I also got the same conflict error on my daily-driver F35 KDE laptop (which has been upgraded in place since I first installed F28 on it)

Comment 4 Chris Murphy 2022-02-18 01:55:24 UTC
https://fedoraproject.org/wiki/Changes/Plocate_as_the_default_locate_implementation

I'm betting it needs to be fixed in plocate, plocate needs to obsolete mlocate.

Comment 5 Adam Williamson 2022-02-18 06:59:23 UTC
The plocate spec file explicitly says that is not the plan:

# The plan is to provide both mlocate and plocate for one or two
# Fedora releases, and then retire mlocate when the bugs in plocate
# have been ironed out. Thus, we only allow one or the other to be
# installed.

Comment 6 Zbigniew Jędrzejewski-Szmek 2022-02-18 07:23:59 UTC
Please attach the full output from dnf (i.e. the upgraded/newly added package list).

Do you have catfish installed, or is it being added in the transaction?

Comment 7 Zbigniew Jędrzejewski-Szmek 2022-02-18 07:36:23 UTC
As Adam wrote, the plan is to allow keep mlocate in the distribution for Fedora 36
and keep upgraded installations on mlocate if they had it.

There doesn't seem to be anything that'd prevent upgrade with mlocate in place.
I tested upgrade on a few installations, and it seemed to work.

Comment 8 Adam Williamson 2022-02-18 20:18:20 UTC
I think the key thing would be to test an install with a package set that includes the 'standard' comps group. Notably, Workstation and minimal installs do not. Server, KDE and most other desktop environments do include it, though.

Comment 9 Adam Williamson 2022-02-18 21:01:13 UTC
Updating description as it's worded the wrong way around (mlocate is the old thing, plocate is the new thing), and we don't necessarily want to upgrade (per #c7).

Comment 10 Zbigniew Jędrzejewski-Szmek 2022-02-18 21:56:26 UTC
Hmm. So… would adding Provides:mlocate in plocate fix the issue?
If you want to install mlocate, will you still get it from 'dnf install mlocate'?

Comment 11 Zbigniew Jędrzejewski-Szmek 2022-02-18 21:57:53 UTC
Or would it be a better option to add Provides:locate to both mlocate and plocate and change
comps to use locate?

Comment 12 Adam Williamson 2022-02-18 23:04:29 UTC
The problem with that is we don't know which would get preferred in that case.

As I said, I'd actually be interested what happens if mlocate adds an explicit conflict with plocate. That might be enough for dnf to get the hint not to pull in plocate if mlocate is installed already. I'm not sure, though.

Comment 13 Fedora Update System 2022-02-19 08:09:31 UTC
FEDORA-2022-70815773ef has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-70815773ef

Comment 14 Fedora Update System 2022-02-19 08:10:11 UTC
FEDORA-2022-66eecfff7e has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-66eecfff7e

Comment 15 Fedora Update System 2022-02-19 08:11:14 UTC
FEDORA-2022-70815773ef has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 16 Fedora Update System 2022-02-19 08:11:20 UTC
FEDORA-2022-66eecfff7e has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 17 Zbigniew Jędrzejewski-Szmek 2022-02-19 08:16:30 UTC
I implemented Adam's idea. Let's is that helps. I also added Provides:locate on both sides so
we can test the other approach later if this one doesn't help.

Comment 18 Fedora Update System 2022-02-19 08:20:37 UTC
FEDORA-2022-613ba38405 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-613ba38405

Comment 19 Fedora Update System 2022-02-19 08:20:42 UTC
FEDORA-2022-1ff9b87d85 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-1ff9b87d85

Comment 20 Fedora Update System 2022-02-19 08:23:15 UTC
FEDORA-2022-613ba38405 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 21 Fedora Update System 2022-02-19 08:23:23 UTC
FEDORA-2022-1ff9b87d85 has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 František Zatloukal 2022-02-21 16:57:14 UTC
Marking as Accepted as per voting in ticket https://pagure.io/fedora-qa/blocker-review/issue/616 .

"For each one of the release-blocking package sets, it must be possible to successfully complete a direct upgrade from a fully updated, clean default installation of each of the last two stable Fedora releases with that package set installed."

Comment 23 Ben Cotton 2022-02-23 17:03:01 UTC
I'm still getting upgrade errors with the fixed mlocate-0.26-46.fc36.x86_64:


 Problem 2: problem with installed package mlocate-0.26-31.fc35.x86_64
  - package plocate-1.1.15-2.fc36.x86_64 conflicts with mlocate provided by mlocate-0.26-46.fc36.x86_64
  - mlocate-0.26-31.fc35.x86_64 does not belong to a distupgrade repository
  - conflicting requests

Does the F35 package need a similar change? Or should mlocate in F36 conflict with plocate? Currently it has `Conflicts: mlocate`. I'm not sure if that's a mistake or RPM magic deeper than my understanding.

Comment 24 Zbigniew Jędrzejewski-Szmek 2022-02-23 17:11:17 UTC
AFAIK, conflicts are symmetric.
I think we should update comps to use 'locate' instead.

Comment 25 Zbigniew Jędrzejewski-Szmek 2022-02-23 17:14:32 UTC
Arrgh, it's because comps-f3[67].xml.in has <packagereq>plocate</packagereq>.
Pfff, maybe the easiest option is to accelerate the schedule and add Obsoletes:mlocate
now, and not for F37. WDYT?

Comment 26 Ben Cotton 2022-02-23 17:39:42 UTC
Obsoleting now seems reasonable. I don't think anyone*'s going to be upset about a smooth upgrade to a faster implementation. But since that's a significant deviation from the original plan, I'd like FESCo to explicitly approve the change.

* Some people will be upset of course, but it's likely a small enough group that I don't think we need to block the release on them.

Comment 27 Adam Williamson 2022-02-23 18:09:50 UTC
Can we please try doing the attempted fix properly first?

As Ben said, it's wrong. You made mlocate conflict with itself, which isn't going to help anything. The idea was to have mlocate Conflicts: plocate. I don't know if it'll help, but it might at least be worth trying :)

Comment 28 Fedora Update System 2022-02-23 21:05:10 UTC
FEDORA-2022-90fa4bf735 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-90fa4bf735

Comment 29 Fedora Update System 2022-02-23 21:06:02 UTC
FEDORA-2022-90fa4bf735 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 30 Ben Cotton 2022-02-23 21:16:12 UTC
Sorry, Bodhi. We need to verify this first.

Comment 31 Zbigniew Jędrzejewski-Szmek 2022-02-23 21:24:48 UTC
Oops, indeed. I rebuilt for F36 and rawhide with the name fixed.

Comment 32 Fedora Update System 2022-02-23 21:26:18 UTC
FEDORA-2022-b44d9f22ee has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-b44d9f22ee

Comment 33 Adam Williamson 2022-02-23 22:24:55 UTC
Edited the update not to close the bug on stable as we're not sure if it'll work.

Comment 34 Fedora Update System 2022-02-24 01:46:13 UTC
FEDORA-2022-b44d9f22ee has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-b44d9f22ee`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-b44d9f22ee

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 35 Lukas Ruzicka 2022-02-24 11:41:48 UTC
I am still getting the error on fully updated Fedora 35 Workstation, where the command from comment 34 produces a "Nothing to do" message.

Comment 36 Zbigniew Jędrzejewski-Szmek 2022-02-24 14:56:25 UTC
I can confirm that the issue still occurs:
$ sudo dnf system-upgrade download --releasever=36 --enablerepo=updates-testing
Error: 
 Problem: problem with installed package mlocate-0.26-31.fc35.x86_64
  - package plocate-1.1.15-2.fc36.x86_64 conflicts with mlocate provided by mlocate-0.26-46.fc36.x86_64
  - package plocate-1.1.15-2.fc36.x86_64 conflicts with mlocate provided by mlocate-0.26-47.fc36.x86_64
  - package mlocate-0.26-47.fc36.x86_64 conflicts with plocate provided by plocate-1.1.15-2.fc36.x86_64
  - mlocate-0.26-31.fc35.x86_64 does not belong to a distupgrade repository
  - conflicting requests

(mlocate-0.26-47.fc36.x86_64 and plocate-1.1.15-2.fc36.x86_64 are the latest builds.)

Option 1: add Obsoletes:mlocate to plocate, effectively removing mlocate from the distro
Option 2: tweak comps to refer to 'locate' not 'plocate'. But then we'd have to somehow
ensure that 'plocate' is installed in preference to 'mlocate'.

There haven't been any complaints about plocate, so I'd prefer option 1.
Comments?

Comment 37 Adam Williamson 2022-02-24 16:03:39 UTC
I'm fine with 1) too. The implementation of locate doesn't seem like a world-shattering detail, honestly, the idea of keeping both around seems if anything over-cautious!

Comment 38 Miro Hrončok 2022-02-24 22:49:02 UTC
I believe we can do (1) while preserving the possibility of explicitly swapping to mlocate in both fresh installs and upgraded systems.

Since unversioned Obsoletes are dangerous and better be avoided, we want some version to obsolete here.

If you add:

    Obsoletes: mlocate < 0.26-300

And we bump the Release of mlocate to 300 in Fedora 36 and 37.

Comment 39 Fedora Update System 2022-03-06 22:00:50 UTC
FEDORA-2022-c6cdbf33d0 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-c6cdbf33d0

Comment 40 Fedora Update System 2022-03-06 22:02:46 UTC
FEDORA-2022-c6cdbf33d0 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 41 Fedora Update System 2022-03-06 22:03:26 UTC
FEDORA-2022-b9311a4098 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-b9311a4098

Comment 42 Fedora Update System 2022-03-07 15:51:19 UTC
FEDORA-2022-b9311a4098 has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2022-b9311a4098`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-b9311a4098

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 43 Fedora Update System 2022-03-10 07:06:28 UTC
FEDORA-2022-b9311a4098 has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 44 arnold.maestre 2022-06-20 12:44:21 UTC
 the issue still occurs:
$ sudo dnf system-upgrade download --releasever=36 --enablerepo=updates-testing
Error: 
 Problem: problem with installed package mlocate-0.26-300.fc36.x86_64
  - package plocate-1.1.15-6.fc36.x86_64 conflicts with mlocate provided by mlocate-0.26-300.fc36.x86_64
  - package mlocate-0.26-300.fc36.x86_64 conflicts with plocate provided by plocate-1.1.15-6.fc36.x86_64
  - conflicting requests

I launched the upgrade from the graphical prompt, upon reboot it displays a "something went wrong" page. The computer is now unable to boot into gdm. I still have access to the terminal.

Command in https://bugzilla.redhat.com/show_bug.cgi?id=2052433#c34 yields "Nothing to do".

Comment 45 Zbigniew Jędrzejewski-Szmek 2022-06-20 12:59:21 UTC
>   - package mlocate-0.26-300.fc36.x86_64 conflicts with plocate provided by plocate-1.1.15-6.fc36.x86_64

Hmm, where did this build come from? Koji [1] lists plocate-1.1.15-3.fc36 as the latest build for F36.

[1] https://koji.fedoraproject.org/koji/packageinfo?packageID=34523

Comment 46 arnold.maestre 2022-06-20 13:51:26 UTC
Sorry, that's a typo. I copied the log (and translated it).

The actual version is plocate-1.1.15-3.fc36.x86_64.


Note You need to log in before you can comment on or make changes to this bug.