Bug 2172292

Summary: dnf history undo fails with " - libpq-13.5-1.el9.i686 has inferior architecture"
Product: Red Hat Enterprise Linux 9 Reporter: jcastran
Component: libsolvAssignee: amatej
Status: VERIFIED --- QA Contact: Tomáš Bajer <tbajer>
Severity: high Docs Contact:
Priority: medium    
Version: 9.1CC: amatej, egoode, jkolarik, jrohel, mbanas, packaging-team-maint, swm-qe, tbajer
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libsolv-0.7.24-2.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: 2172288 Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2172288    
Bug Blocks:    

Description jcastran 2023-02-21 21:10:02 UTC
+++ This bug was initially created as a clone of Bug #2172288 +++

Description of problem:
When the .i686 arch of a multilib package is installed first, you can not undo the later transaction which installed the .x86_64 variant.


Version-Release number of selected component (if applicable):
[root@r9 ~]# rpm -q dnf libsolv
dnf-4.14.0-4.el9.noarch
libsolv-0.7.22-1.el9.x86_64

How reproducible:
Everytime

Steps to Reproduce:
1. Do not have libpq installed
2. # yum -y install libpq.i686
3. # yum -y install libpq
4. # yum history undo last      ##This should undo the libpq.x86_64 transaction

Actual results:
Error:
 Problem: problem with installed package libpq-13.5-1.el9.i686
  - libpq-13.5-1.el9.i686 has inferior architecture
  - conflicting requests
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Expected results:
Since we could install libpq.i686 without .x86_64 in the first place, theres no reason we can't undo the transaction with .x86_64 in it.

Additional info:

Comment 1 Evan Goode 2023-02-27 13:57:28 UTC
Note: I needed to change step 3 to:
3. # yum -y install libpq.x86_64
to reproduce on Fedora 37.

Comment 4 Jaroslav Mracek 2023-03-21 13:55:04 UTC
I've created an issue on libsolv (https://github.com/openSUSE/libsolv/issues/525). The issue contains reproducer using libsolv testcase.