Bug 2196763

Summary: Installing latest rh-sso7-keycloak-server and eap7-wildfly-modules packages break any new transaction due to "obsoletes" information
Product: Red Hat Enterprise Linux 8 Reporter: Renaud Métrich <rmetrich>
Component: libsolvAssignee: Jaroslav Mracek <jmracek>
Status: NEW --- QA Contact: swm-qe
Severity: high Docs Contact:
Priority: high    
Version: 8.7CC: jcastran, mcurlej
Target Milestone: rcKeywords: MigratedToJIRA, Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 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:

Description Renaud Métrich 2023-05-10 07:23:10 UTC
Description of problem:

Package "rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch" obsoletes some ancient "eap7-wildfly-modules" releases:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
# rpm -q --obsoletes rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch
eap7-wildfly-modules <= 0:7.3
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

Trying to install both rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch and eap7-wildfly-modules-7.4.10-6.GA_redhat_00002.1.el8eap (*latest, not obsoleted at all*) on the system, the eap7-wildfly-modules-7.4.10-6.GA_redhat_00002.1.el8eap cannot be installed, unless full release is explicitly specified:

1. The following doesn't install "eap7-wildfly-modules" at all

  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
  # yum install rh-sso7-keycloak-server eap7-wildfly-modules
  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

2. The following installs "eap7-wildfly-modules"

  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
  # yum install rh-sso7-keycloak-server eap7-wildfly-modules-7.4.10-6.GA_redhat_00002.1.el8eap
  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

I understand this is somehow expected because libsolv doesn't check the obsoleted part ("0:7.3") by default. Please correct me if I'm wrong.

Still this is an issue, because after installing the packages (using "2." method), any new "yum update" transaction will fail:

-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
# yum update
[...]
Error: 
 Problem: cannot install both rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso.noarch and rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch
  - cannot install the best update candidate for package rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch
  - cannot install the best update candidate for package eap7-wildfly-modules-7.4.10-6.GA_redhat_00002.1.el8eap.noarch
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

Version-Release number of selected component (if applicable):

libsolv-0.7.20-4.el8_7.x86_64

How reproducible:

Always

Steps to Reproduce:
1. Install both packages, "eap7-wildfly-modules" being fully specified

  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
  # yum install rh-sso7-keycloak-server eap7-wildfly-modules-7.4.10-6.GA_redhat_00002.1.el8eap
  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

2. Try updating the system

  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
  # yum update
  -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

Actual results:

-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
Error: 
 Problem: cannot install both rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso.noarch and rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch
  - cannot install the best update candidate for package rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch
  - cannot install the best update candidate for package eap7-wildfly-modules-7.4.10-6.GA_redhat_00002.1.el8eap.noarch
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

Expected results:

No error

Comment 1 Renaud Métrich 2023-05-10 07:27:49 UTC
From the error, it seems that libsolv wants to downgrade rh-sso7-keycloak-server-18.0.6-1.redhat_00001.1.el8sso.noarch to rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso.noarch.

Note that rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso.noarch (old package) has a "wider obsolete" since it's obsoletes "eap7-wildfly-modules" completely:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
# rpm -q --obsoletes -p ./rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso.noarch.rpm
eap7-wildfly-modules
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

It looks like this is exact root cause, at least excluding the package works:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
# yum update --exclude=rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso
[...]
Nothing to do.
Complete!
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------

If that's the real root cause, then this package has to be entirely removed from our repository since it can be considered as broken.

Comment 2 Jaroslav Mracek 2023-07-20 09:25:20 UTC
May I ask you from which repository is the package. I am unable to find it. If the issue is caused by incorrect packaging I would suggest to change the component for the package or to distribution.

Comment 3 Renaud Métrich 2023-08-07 05:55:29 UTC
As found in Package Browser, package rh-sso7-keycloak-server-18.0.0-2.redhat_00001.1.el8sso.noarch comes from rh-sso-7.6-for-rhel-8-x86_64-rpms