Bug 1876847 - DNF installs i686 package version instead of x86_64 under some circumstances
Summary: DNF installs i686 package version instead of x86_64 under some circumstances
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: 34
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-09-08 10:42 UTC by Ondrej Mosnacek
Modified: 2022-06-08 00:47 UTC (History)
11 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2022-06-08 00:47:58 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Ondrej Mosnacek 2020-09-08 10:42:37 UTC
Description of problem:
Running `dnf install libselinux libselinux-devel` on a system where libselinux is installed (and not the latest version) and libselinux-devel is not leads to DNF trying to install the i686 version of libselinux-devel instead of the x86_64 version, which makes more sense.

Version-Release number of selected component (if applicable):
# dnf --version
4.2.23
  Installed: dnf-0:4.2.23-2.fc33.noarch at Tue 18 Aug 2020 08:09:32 AM GMT
  Built    : Fedora Project at Mon 27 Jul 2020 05:01:45 PM GMT

  Installed: rpm-0:4.16.0-0.rc1.1.fc34.x86_64 at Tue 08 Sep 2020 10:23:31 AM GMT
  Built    : Fedora Project at Mon 31 Aug 2020 09:43:05 AM GMT

How reproducible:
Always.

Steps to Reproduce:
1. Get a fully updated Fedora Rawhide x86_64 VM.
2. Downgrade libselinux packages to libselinux-3.1-2.fc33:
# dnf downgrade https://kojipkgs.fedoraproject.org//packages/libselinux/3.1/2.fc33/x86_64/libselinux-3.1-2.fc33.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/libselinux/3.1/2.fc33/x86_64/libselinux-utils-3.1-2.fc33.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/libselinux/3.1/2.fc33/x86_64/python3-libselinux-3.1-2.fc33.x86_64.rpm
3. Try to install libselinux-devel EXACTLY like this:
# dnf install libselinux libselinux-devel

Actual results:
```
Installing:
 libselinux-devel                i686                  3.1-3.fc34                       rawhide                112 k
Installing dependencies:
 glibc                           i686                  2.32.9000-5.fc34                 rawhide                3.4 M
 libgcc                          i686                  10.2.1-3.fc34                    rawhide                105 k
 libselinux                      i686                  3.1-3.fc34                       rawhide                 88 k
 libsepol                        i686                  3.1-3.fc33                       rawhide                338 k
 libsepol-devel                  i686                  3.1-3.fc33                       rawhide                 40 k
 libsepol-devel                  x86_64                3.1-3.fc33                       rawhide                 40 k
 pcre2                           i686                  10.35-4.fc33.1                   rawhide                229 k
 pcre2-devel                     x86_64                10.35-4.fc33.1                   rawhide                474 k
 pcre2-utf16                     x86_64                10.35-4.fc33.1                   rawhide                212 k
 pcre2-utf32                     x86_64                10.35-4.fc33.1                   rawhide                201 k
```

Expected results:
```
Installing:
 libselinux-devel                  x86_64                3.1-3.fc34                     rawhide                112 k
Upgrading:
 libselinux                        x86_64                3.1-3.fc34                     rawhide                 83 k
 libselinux-utils                  x86_64                3.1-3.fc34                     rawhide                140 k
 python3-libselinux                x86_64                3.1-3.fc34                     rawhide                184 k
Installing dependencies:
 libsepol-devel                    x86_64                3.1-3.fc33                     rawhide                 40 k
 pcre2-devel                       x86_64                10.35-4.fc33.1                 rawhide                474 k
 pcre2-utf16                       x86_64                10.35-4.fc33.1                 rawhide                212 k
 pcre2-utf32                       x86_64                10.35-4.fc33.1                 rawhide                201 k
```

Additional info:
This issue doesn't happen if I add --best (`dnf install --best libselinux libselinux-devel`), invert the order (`dnf install libselinux-devel libselinux`), or only specify libselinux-devel (`dnf install libselinux-devel`).

This is reproducible without the downgrade step also on current RH-internal 1MT-Fedora-Rawhide image (when the image is updated or libselinux rebuilt it may no longer be reproducible).

Comment 1 Lukáš Hrázký 2020-09-21 12:27:13 UTC
Hello, thanks for the report. Can you please share debugsolver data for the transaction? Run:

dnf install libselinux libselinux-devel --debugsolver

This will create a debugdata directory in your current directory. I'm afraid it will likely be too big to attach to the bug, maybe put it somewhere for download?

We have multiple related issues that all deal with installing wrong architectures in one way or another:
https://bugzilla.redhat.com/show_bug.cgi?id=1748454
https://bugzilla.redhat.com/show_bug.cgi?id=1855028
https://bugzilla.redhat.com/show_bug.cgi?id=1782899

They all have a corresponding bug reported on upstream libsolv, but so far there's little progress in resolving them. This one is likely a similar case. We have it on our backlog, but if libsolv upstream doesn't fix it, it will take some time on our side to do it, as the issue is quite complex.

Comment 2 Ondrej Mosnacek 2020-09-21 13:09:42 UTC
debugdata available here:
https://omos.fedorapeople.org/shared_files/bz1876847_debugdata.tar.gz

The linked bugs don't sound like the same issue as here, although the first two might be related, who knows...

Comment 3 Ben Cotton 2021-02-09 15:18:12 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 34 development cycle.
Changing version to 34.

Comment 4 Ben Cotton 2022-05-12 16:30:06 UTC
This message is a reminder that Fedora Linux 34 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 34 on 2022-06-07.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '34'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 34 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 5 Ben Cotton 2022-06-08 00:47:58 UTC
Fedora Linux 34 entered end-of-life (EOL) status on 2022-06-07.

Fedora Linux 34 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release.

Thank you for reporting this bug and we are sorry it could not be fixed.


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