Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 2149690

Summary: unsatisfied satellite rpm dependencies should inhibit LEAPP upgrade
Product: Red Hat Satellite Reporter: Lukas Pramuk <lpramuk>
Component: UpgradesAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED NOTABUG QA Contact: Lukas Pramuk <lpramuk>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.11.4CC: egolov
Target Milestone: UnspecifiedKeywords: Upgrades
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-01-20 12:59:55 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 Lukas Pramuk 2022-11-30 15:54:13 UTC
Description of problem:
Unsatisfied satellite rpm dependencies should inhibit LEAPP upgrade.
Instead Satellite is "successfully" uninstalled during LEAPP upgrade.


Version-Release number of selected component (if applicable):
Satellite 6.11.4
leapp-0.15.0-2.el7_9.noarch
leapp-upgrade-el7toel8-0.17.0-1.el7_9.noarch

How reproducible:
deterministic (when dependency issue arises)

Steps to Reproduce:
1. There are broken Satellite dependency resolution BZ#2148470
2. Perform LEAPP upgrade of Satellite
3. LEAPP upgrade uninstalls Satellite


Actual results:
broken dependencies leads to product uninstallation

Expected results:
broken dependencies inhibit LEAPP upgrade

Comment 1 Lukas Pramuk 2022-11-30 16:19:58 UTC
it looks like BZ#2148470 is not good reproducer for step #1

So better reproducer is that satellite 6.11 el8 repo enable fails for whatever reason (unavailable subscription)

Comment 2 Evgeni Golov 2022-12-01 13:42:32 UTC
(In reply to Lukas Pramuk from comment #1)

> So better reproducer is that satellite 6.11 el8 repo enable fails for
> whatever reason (unavailable subscription)

Do you have such a box? Because w/o the sat repo, you get a lot of packages missing and the upgrade should be inhibited *anyways*

I opened https://github.com/oamg/leapp-repository/pull/994 as a safe-guard, but I still don't see how this is not already "properly" reported by leapp.

Comment 3 Brad Buckingham 2022-12-01 15:19:42 UTC
Evgeni,

Should this bugzilla be moved over to RHEL based upon comment 2?

Thanks!

Comment 4 Evgeni Golov 2022-12-01 16:13:23 UTC
(In reply to Brad Buckingham from comment #3)

> Should this bugzilla be moved over to RHEL based upon comment 2?

Not right now, no. I still need to try to reproduce the actual issue.

Comment 5 Evgeni Golov 2022-12-02 11:59:59 UTC
So Lukas said this should be reproducibe when the Satellite repo is unavailable, but this doesn't seem to work for me?

I started with a fresh 6.11-on-rhel7 machine (6.11.4.1 on 7.9 to be precise) and installed latest leapp bits on it:
python2-leapp-0.15.0-2.el7_9.noarch
leapp-upgrade-el7toel8-0.17.0-1.el7_9.noarch
leapp-deps-0.15.0-2.el7_9.noarch
leapp-0.15.0-2.el7_9.noarch
leapp-upgrade-el7toel8-deps-0.17.0-1.el7_9.noarch

Now, I wanted to try a disconnected upgrade, as that one is the easiest to simulate unavailable repositories with.

Without configuring *any* repositories, leapp rightfully yells at me that this is not going to work:

# leapp preupgrade --no-rhsm
…
============================================================
                     UPGRADE INHIBITED                      
============================================================

Upgrade has been inhibited due to the following problems:
    1. Inhibitor: Using RHSM has been skipped but no custom or RHUI repositories have been delivered.
Consult the pre-upgrade report for details and possible remediation.

============================================================
                     UPGRADE INHIBITED                      
============================================================

So I added BaseOS and AppStream of 8.7 as available on download.devel:

# cat /etc/yum.repos.d/rhel8.repo 
[BaseOS]
name=rhel-8-for-x86_64-baseos-rpms
baseurl=http://download.devel.redhat.com/released/RHEL-8/8.7.0/BaseOS/x86_64/os/

[AppStream]
name=rhel-8-for-x86_64-appstream-rpms
baseurl=http://download.devel.redhat.com/released/RHEL-8/8.7.0/AppStream/x86_64/os/

This makes leapp *try* an upgrade, but it very clearly fails on dependencies:

# leapp preupgrade --no-rhsm --enablerepo BaseOS --enablerepo AppStream
…
============================================================
                           ERRORS                           
============================================================

2022-12-02 11:08:43.050700 [ERROR] Actor: dnf_transaction_check
Message: DNF execution failed with non zero exit code.
STDOUT:
Last metadata expiration check: 0:01:09 ago on Fri Dec  2 11:07:32 2022.
Package foreman-installer-katello-1:3.1.2.8-1.el7sat.noarch is already installed.
Package rubygem-foreman_maintain-1:1.0.18-1.el7sat.noarch is already installed.
Package satellite-installer-6.11.0.7-1.el7sat.noarch is already installed.
Package katello-4.3.0-3.el7sat.noarch is already installed.
Package foreman-installer-1:3.1.2.8-1.el7sat.noarch is already installed.

STDERR:
No matches found for the following disable plugin patterns: subscription-manager
The following modules were requested to be enabled, but they are unavailable: virt:av, satellite:el8
Warning: Package marked by Leapp to install not found in repositories metadata: rubygem-foreman_remote_execution rubygem-smart_proxy_dynflow rubygem-foreman-tasks rubygem-foreman_theme_satellite rubygem-smart_proxy_ansible rubygem-foreman_templates rubygem-hammer_cli_foreman_remote_execution rubygem-foreman_openscap rubygem-hammer_cli_katello rubygem-smart_proxy_remote_execution_ssh rubygem-foreman_hooks rubygem-smart_proxy_pulp rubygem-hammer_cli_foreman_virt_who_configure rubygem-hammer_cli_foreman_openscap rubygem-katello python38-pulp-certguard postgresql-evr rubygem-hammer_cli_foreman_ansible rubygem-hammer_cli_foreman_admin rubygem-foreman_rh_cloud rubygem-smart_proxy_openscap rpcgen rubygem-foreman_virt_who_configure rubygem-hammer_cli python38-pulpcore rubygem-hammer_cli_foreman_azure_rm rubygem-foreman_azure_rm gdk-pixbuf2-xlib rubygem-foreman_bootdisk python3-pyxattr ivy-local python38-pulp-container rubygem-hammer_cli_foreman_templates rubygem-hammer_cli_foreman_bootdisk rubygem-foreman_webhooks rubygem-hammer_cli_foreman_tasks python38-pulp-ansible rubygem-smart_proxy_discovery rubygem-hammer_cli_foreman_webhooks rubygem-foreman_leapp rubygem-hammer_cli_foreman_discovery rubygem-foreman_discovery python38-pulp-rpm rubygem-smart_proxy_dynflow_core log4j12 rubygem-hammer_cli_foreman rubygem-foreman_ansible python38-pulp-file python3-javapackages
Warning: Package marked by Leapp to upgrade not found in repositories metadata: gpg-pubkey leapp-upgrade-el7toel8 leapp python2-leapp
Transaction check: 

 Problem 1: package foreman-installer-katello-1:3.1.2.8-1.el7sat.noarch requires katello-certs-tools, but none of the providers can be installed
  - package katello-certs-tools-2.9.0-1.el7sat.noarch requires python-setuptools, but none of the providers can be installed
  - conflicting requests
 Problem 2: package rubygem-foreman_maintain-1:1.0.18-1.el7sat.noarch requires rh-postgresql12-postgresql-syspaths, but none of the providers can be installed
  - package rh-postgresql12-postgresql-syspaths-12.11-1.el7.x86_64 requires rh-postgresql12-runtime, but none of the providers can be installed
  - conflicting requests
 Problem 3: package katello-4.3.0-3.el7sat.noarch requires candlepin >= 2.0, but none of the providers can be installed
  - package candlepin-4.1.14-1.el7sat.noarch requires /usr/bin/python, but none of the providers can be installed
  - conflicting requests
 Problem 4: package foreman-installer-1:3.1.2.8-1.el7sat.noarch requires rh-ruby27-ruby(release), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.6-131.el7.x86_64 requires rh-ruby27-runtime, but none of the providers can be installed
  - conflicting requests
 Problem 5: package foreman-installer-katello-1:3.1.2.8-1.el7sat.noarch requires katello-certs-tools, but none of the providers can be installed
  - package katello-certs-tools-2.9.0-1.el7sat.noarch requires python-setuptools, but none of the providers can be installed
  - package satellite-installer-6.11.0.7-1.el7sat.noarch requires foreman-installer-katello >= 3.14.0, but none of the providers can be installed
  - package python-setuptools-0.9.8-7.el7.noarch requires python-backports-ssl_match_hostname, but none of the providers can be installed
  - conflicting requests


============================================================
                       END OF ERRORS                        
============================================================

Well, this means I need to add Satellite repos?

# cat /etc/yum.repos.d/satellite.repo 
[satellite-6.11-for-rhel-8-x86_64-rpms]
name=satellite-6.11-for-rhel-8-x86_64-rpms
baseurl=http://compose.sat.engineering.redhat.com/composes/latest-Satellite-6.11-RHEL-8/compose/Satellite/x86_64/os/

[satellite-maintenance-6.11-for-rhel-8-x86_64-rpms]
name=satellite-maintenance-6.11-for-rhel-8-x86_64-rpms
baseurl=http://compose.sat.engineering.redhat.com/composes/latest-Satellite-6.11-RHEL-8/compose/Maintenance/x86_64/os/

# leapp preupgrade --no-rhsm --enablerepo BaseOS --enablerepo AppStream --enablerepo satellite-6.11-for-rhel-8-x86_64-rpms --enablerepo satellite-maintenance-6.11-for-rhel-8-x86_64-rpms

This succeeds -- but that part was rather obvious.

So I tried applying a patch similar to what I did in https://github.com/oamg/leapp-repository/pull/994 -- but this time asking it to install a non-existing package.
Sadly, this doesn't make leapp abort/inhibit the update, it just ignores that the package couldn't be installed.
Same for an unavailable module.
/var/log/leapp/leapp-preupgrade.log does contain debug output that those could not be found, but that's it.
no mention in /var/log/leapp/leapp-report.txt either :(

Comment 6 Evgeni Golov 2022-12-02 13:42:22 UTC
And if I inject a satellite.rpm that actually has dependencies that cannot be satisfied, I get (without my linked patch):

============================================================
                           ERRORS                           
============================================================

2022-12-02 13:36:50.137105 [ERROR] Actor: dnf_transaction_check
Message: DNF execution failed with non zero exit code.
STDOUT:
Last metadata expiration check: 0:00:59 ago on Fri Dec  2 13:35:49 2022.
Package foreman-installer-katello-1:3.1.2.8-1.el7sat.noarch is already installed.
Package rubygem-foreman_maintain-1:1.0.18-1.el7sat.noarch is already installed.
Package satellite-installer-6.11.0.7-1.el7sat.noarch is already installed.
Package katello-4.3.0-3.el7sat.noarch is already installed.
Package foreman-installer-1:3.1.2.8-1.el7sat.noarch is already installed.

STDERR:
No matches found for the following disable plugin patterns: subscription-manager
The following modules were requested to be enabled, but they are unavailable: virt:av
Warning: Package marked by Leapp to install not found in repositories metadata: rpcgen gdk-pixbuf2-xlib python3-pyxattr ivy-local log4j12 python3-javapackages
Warning: Package marked by Leapp to upgrade not found in repositories metadata: gpg-pubkey leapp-upgrade-el7toel8 leapp python2-leapp
Transaction check: 

 Problem: problem with installed package satellite-6.11.4.1-1.el7sat.noarch
  - cannot install the best update candidate for package satellite-6.11.4.1-1.el7sat.noarch
  - satellite-6.11.4.1-1.el7sat.noarch does not belong to a distupgrade repository
  - nothing provides evgeni-is-crazy needed by satellite-6.11.4.2-1.el8sat.noarch


============================================================
                       END OF ERRORS                        
============================================================

And with the linked patch:

============================================================
                           ERRORS                           
============================================================

2022-12-02 13:40:48.888490 [ERROR] Actor: dnf_transaction_check
Message: DNF execution failed with non zero exit code.
STDOUT:
Last metadata expiration check: 0:01:05 ago on Fri Dec  2 13:39:41 2022.
Package foreman-installer-katello-1:3.1.2.8-1.el7sat.noarch is already installed.
Package rubygem-foreman_maintain-1:1.0.18-1.el7sat.noarch is already installed.
Package satellite-installer-6.11.0.7-1.el7sat.noarch is already installed.
Package katello-4.3.0-3.el7sat.noarch is already installed.
Package satellite-6.11.4.1-1.el7sat.noarch is already installed.
Package foreman-installer-1:3.1.2.8-1.el7sat.noarch is already installed.

STDERR:
No matches found for the following disable plugin patterns: subscription-manager
The following modules were requested to be enabled, but they are unavailable: virt:av
Warning: Package marked by Leapp to install not found in repositories metadata: rpcgen gdk-pixbuf2-xlib python3-pyxattr ivy-local log4j12 python3-javapackages
Warning: Package marked by Leapp to upgrade not found in repositories metadata: gpg-pubkey leapp-upgrade-el7toel8 leapp python2-leapp
Transaction check: 

 Problem 1: cannot install the best candidate for the job
  - nothing provides evgeni-is-crazy needed by satellite-6.11.4.2-1.el8sat.noarch
 Problem 2: problem with installed package satellite-6.11.4.1-1.el7sat.noarch
  - cannot install the best update candidate for package satellite-6.11.4.1-1.el7sat.noarch
  - satellite-6.11.4.1-1.el7sat.noarch does not belong to a distupgrade repository
  - nothing provides evgeni-is-crazy needed by satellite-6.11.4.2-1.el8sat.noarch


============================================================
                       END OF ERRORS                        
============================================================

Which makes it a tad more explicit, I guess.

But still, no reproducer of the original issue reported.

Comment 7 Evgeni Golov 2023-01-05 08:29:26 UTC
@lpramuk until today, I was unable to reproduce the original issue you've reported.

Can you provide exact reproducer steps please?

(https://github.com/oamg/leapp-repository/pull/994 got merged, but even without it I wasn't able to reproduce)

Comment 8 Evgeni Golov 2023-01-20 12:59:55 UTC
After talking with Lukas on IRC, we decided to close this BZ for now, as none of us can come up with a reproducer.

Comment 9 Red Hat Bugzilla 2023-09-19 04:31:00 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days