Bug 2004748

Summary: dnf updateinfo on RHEL 8.2 and later won't stop displaying RHEA-2020:4724 as applicable
Product: Red Hat Enterprise Linux 8 Reporter: Pablo Hess <phess>
Component: dnfAssignee: Jaroslav Mracek <jmracek>
Status: CLOSED DUPLICATE QA Contact: swm-qe
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.4CC: james.antill
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-09-21 06:54:43 UTC 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:

Description Pablo Hess 2021-09-15 21:05:02 UTC
Description of problem:
On a RHEL 8.2 or 8.3 or 8.4 system, the `dnf updateinfo --enhancement` command will always display 1 Enhancement Errata available, RHEA-2020:4724.

If the default Perl:26 module is enabled and installed, then this RHEA requires a specific release:
(below I'm showing the perl-IO-Socket-SSL package only but this is a pattern with 3-4 packages in this errata.)
~~~
// Errata-provided package version
# dnf updateinfo list --enhancement
 (...)
RHEA-2020:4724 enhancement perl-IO-Socket-SSL-2.066-4.module+el8.3.0+6452+449fe210.noarch
 (...)                                                                    ^^^^^^^^

// Installed package version
# dnf list perl-IO-Socket-SSL --showduplicate
Available Packages
perl-IO-Socket-SSL.noarch                    2.066-4.module+el8.3.0+6446+594cad75                    rhel-8-for-x86_64-appstream-rpms
                                                                         ^^^^^^^^
~~~



If I take the steps to switch to Perl:5.24 from the default Perl:5.26 module, then this errata still shows as applicable with the outputs below:
~~~
// Errata-provided package version
 (...)
RHEA-2020:4724 enhancement perl-IO-Socket-SSL-2.066-4.module+el8.3.0+6446+594cad75.noarch
RHEA-2020:4724 enhancement perl-IO-Socket-SSL-2.066-4.module+el8.3.0+6452+449fe210.noarch
 (...)


// Installed package version
# dnf list --showduplicate perl-IO-Socket-SSL
Available Packages
perl-IO-Socket-SSL.noarch   2.066-4.module+el8.3.0+6446+37a50855   rhel-8-for-x86_64-appstream-rpms 
                                                        ^^^^^^^^
~~~


Looking at the multiple perl-IO-Socket-SSL releases and their dependencies, the problem seems to be that this single erratum, RHEA-2020:4724, contains packages that depend on mutually conflicting resources:

perl-IO-Socket-SSL-2.066-4.module+el8.3.0+6446+37a50855.noarch requires perl(:MODULE_COMPAT_5.24.4)

perl-IO-Socket-SSL-2.066-4.module+el8.3.0+6446+594cad75.noarch requires perl(:MODULE_COMPAT_5.26.3)

perl-IO-Socket-SSL-2.066-4.module+el8.3.0+6452+449fe210.noarch requires perl(:MODULE_COMPAT_5.30.0)


As a result, RHEL 8 systems will always have one or more of these packages available, but only one of them will be installable depending on which perl module version is installed (5.24 or 5.26 or 5.30).



Version-Release number of selected component (if applicable):
dnf-4.4.2-11.el8.noarch
kpatch-dnf-0.2-3.el8.noarch
libdnf-0.55.0-7.el8.x86_64
python3-libdnf-0.55.0-7.el8.x86_64
dnf-data-4.4.2-11.el8.noarch
python3-dnf-plugins-core-4.0.18-4.el8.noarch
dnf-plugins-core-4.0.18-4.el8.noarch
dnf-plugin-subscription-manager-1.28.13-2.el8.x86_64
python3-dnf-4.4.2-11.el8.noarch


How reproducible:
100% of RHEL 8.2 or 8.3 or 8.4 hosts on the lab.

Steps to Reproduce:
1. Have a RHEL 8.2 or later system (not tested with earlier releases, probably applies too).
2. Update the system to RHEL 8.4.
3. Run `dnf updateinfo --enhancement list ; dnf -y update --advisory RHEA-2020:4724` to install all packages belonging to this perl erratum.
4. Run `dnf updateinfo --enhancement list` again.

Actual results:
Some perl packages keep showing as applicable as part of RHEA-2020:4724, although this erratum has no more packages to update.

Expected results:
If an enhancement erratum shows as applicable to a host, then `dnf -y update --advisory RHEA-2020:4724` should update all applicable packages pertaining to said erratum and `dnf updateinfo --enhancement list` should not show said erratum anymore.

Additional info:

Comment 1 Jaroslav Mracek 2021-09-21 06:54:43 UTC
Thank you very much for the report. According to the description and reproducer the root cause of the bug is identical to `Bug 1804234 - yum false positive advisory if module enabled` https://bugzilla.redhat.com/show_bug.cgi?id=1804234. As you can in the bug, the issue is planned to be resolved in 8.5. I am closing it as a duplicate. In case I overlooked something or you want to handle it by a different way, please reopen the bug with additional information.

*** This bug has been marked as a duplicate of bug 1804234 ***