+++ 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:
Note: I needed to change step 3 to: 3. # yum -y install libpq.x86_64 to reproduce on Fedora 37.
I've created an issue on libsolv (https://github.com/openSUSE/libsolv/issues/525). The issue contains reproducer using libsolv testcase.
The issue is fixed by https://github.com/openSUSE/libsolv/commit/634371f143e5c0d4244dd46084d0aa7ccdb3967c But it created a side effect. See https://github.com/openSUSE/libsolv/issues/528. The side effect is fixed by https://github.com/openSUSE/libsolv/commit/634371f143e5c0d4244dd46084d0aa7ccdb3967c
Tests: https://github.com/rpm-software-management/ci-dnf-stack/pull/1257 https://github.com/rpm-software-management/ci-dnf-stack/pull/1258