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@r8 repo]# rpm -q dnf libsolv dnf-4.7.0-11.el8.noarch libsolv-0.7.20-4.el8_7.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.el8.i686 - libpq-13.5-1.el8.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.
Tests: https://github.com/rpm-software-management/ci-dnf-stack/pull/1257 https://github.com/rpm-software-management/ci-dnf-stack/pull/1258 The issue is fixed by: https://github.com/openSUSE/libsolv/commit/634371f143e5c0d4244dd46084d0aa7ccdb3967c and https://github.com/openSUSE/libsolv/commit/5dc4f81fda718df26f8f5dda343a71d34cf555b4