Bug 1692453

Summary: [subman] Set skip_if_unavailable=false as default behavior for software management tools[ZStream Clone] [rhel-8.0.0.z]
Product: Red Hat Enterprise Linux 8 Reporter: Oneata Mircea Teodor <toneata>
Component: subscription-managerAssignee: candlepin-bugs
Status: CLOSED WONTFIX QA Contact: Red Hat subscription-manager QE Team <rhsm-qe>
Severity: high Docs Contact:
Priority: high    
Version: 8.0CC: candlepin-bugs, csnyder, dmach, jsefler, rhsm-qe, tbowling, toneata, wchadwic
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1689400 Environment:
Last Closed: 2020-03-12 10:01:47 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:
Bug Depends On: 1682763    
Bug Blocks: 1679509, 1692452    

Comment 3 Chris Snyder 2019-04-08 18:51:40 UTC
This requires no code change in subman. Moving to ON_QA for verification against the updated libdnf.

Comment 6 John Sefler 2019-04-24 17:13:23 UTC
Please understand that there is no subscription-manager code change required for the skip_if_unavailable=false behavior needed to make the yum experience on RHEL8 equivalent to RHEL7|6|5.
I will use this ON_QA subscription-manager bug as a sanity test only to confirm that the change from libdnf Bug 1692452 which appears fixed in libdnf-0.22.5-5.el8_0 from 0-day advisory https://errata.devel.redhat.com/advisory/40907 will work as intended with the RHEL8.0 GA version of subscription-manager-1.23.8-35.el8 from advisory https://errata.devel.redhat.com/advisory/35738

I'll begin with the GA packages demonstrating the undesired behavior...

[root@kvm-04-guest20 ~]# rpm -q subscription-manager
subscription-manager-1.23.8-35.el8.x86_64
[root@kvm-04-guest20 ~]# rpm -q python3-hawkey python3-libdnf libdnf 
python3-hawkey-0.22.5-4.el8.x86_64
python3-libdnf-0.22.5-4.el8.x86_64
libdnf-0.22.5-4.el8.x86_64


[root@kvm-04-guest20 ~]# subscription-manager register --serverurl=subscription.rhsm.stage.redhat.com --baseurl=https://cdn.redhat.com --auto-attach --username=qa
Registering to: subscription.rhsm.stage.redhat.com:443/subscription
Password: 
The system has been registered with ID: c8750ddb-a4c6-445a-911d-57de1b603dd6
The registered system name is: kvm-04-guest20.rhts.eng.bos.redhat.com
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux for x86_64
Status:       Subscribed

[root@kvm-04-guest20 ~]# subscription-manager repos --enable=rhel-8-for-x86_64-sap-*
Repository 'rhel-8-for-x86_64-sap-solutions-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-sap-netweaver-source-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-sap-netweaver-debug-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-sap-netweaver-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-sap-solutions-debug-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-sap-solutions-source-rpms' is enabled for this system.

[root@kvm-04-guest20 ~]# yum repolist --disablerepo=beaker*
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)           3.1 kB/s | 4.5 kB     00:01    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)              2.6 kB/s | 4.0 kB     00:01    
Red Hat Enterprise Linux 8 for x86_64 - SAP NetWeaver (Debug RPMs)  10  B/s |  16  B     00:01    
Red Hat Enterprise Linux 8 for x86_64 - SAP NetWeaver (RPMs)        11  B/s |  16  B     00:01    
Red Hat Enterprise Linux 8 for x86_64 - SAP NetWeaver (Source RPMs  11  B/s |  16  B     00:01    
Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions (Debug RPMs)  11  B/s |  16  B     00:01    
Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions (RPMs)       9.7  B/s |  16  B     00:01    
Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions (Source RPMs  11  B/s |  16  B     00:01    
Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-netweaver-debug-rpms', ignoring this repo.
Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-netweaver-rpms', ignoring this repo.
Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-netweaver-source-rpms', ignoring this repo.
Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-solutions-debug-rpms', ignoring this repo.
Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-solutions-rpms', ignoring this repo.
Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-solutions-source-rpms', ignoring this repo.
repo id                           repo name                                                  status
rhel-8-for-x86_64-appstream-rpms  Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)   4,701
rhel-8-for-x86_64-baseos-rpms     Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)      1,713
[root@kvm-04-guest20 ~]# 

^^^ NOTICE THE "Failed to synchronize... ignoring this repo" BEHAVIOR BECAUSE skip_if_unavailable DEFAULTS TO TRUE IN libdnf-0.22.5-4.el8.x86_64.  This is undesirable for the sake of a consistent user experience from RHEL7 to RHEL8.

Now let's re-test after updating the libdnf packages to 0.22.5-5.el8_0 (not shown)...

[root@kvm-04-guest20 ~]# rpm -q python3-hawkey python3-libdnf libdnf 
python3-hawkey-0.22.5-5.el8_0.x86_64
python3-libdnf-0.22.5-5.el8_0.x86_64
libdnf-0.22.5-5.el8_0.x86_64

[root@kvm-04-guest20 ~]# yum repolist --disablerepo=beaker*
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - SAP NetWeaver (Debug RPMs) 9.5  B/s |  16  B     00:01    
Error: Failed to synchronize cache for repo 'rhel-8-for-x86_64-sap-netweaver-debug-rpms'
[root@kvm-04-guest20 ~]# echo $?
1

^^^ BANG! Consistent with RHEL7|6|5 behavior, the yum transaction no longer skips when the repositories (entitled through subscription-manager) is unavailable.  The transaction ceases on the first unavailable repo encountered and exits with a non-zero exit code.

Moving this bug to VERIFIED/Sanity Only