Bug 1689931

Summary: global parameter to define skip_if_unavailable behavior for yum
Product: Red Hat Enterprise Linux 8 Reporter: Terry Bowling <tbowling>
Component: libdnfAssignee: Jaroslav Mracek <jmracek>
Status: CLOSED ERRATA QA Contact: Jan Blazek <jblazek>
Severity: medium Docs Contact:
Priority: high    
Version: 8.0CC: dmach, jmracek, mblaha, toneata, wchadwic
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: 8.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libdnf-0.33.0-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1702180 (view as bug list) Environment:
Last Closed: 2019-11-05 22:21:30 UTC Type: Enhancement
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:    
Bug Blocks: 1702180    

Description Terry Bowling 2019-03-18 13:10:13 UTC
Description of problem:

The current default behavior of yum4/dnf is skip_if_unavailable=True.  This default behavior is being changed to False on bz1679509.  

While one can manually set change this parameter setting in each individual repository file, it is also desired to have a global configuration setting as well so that repository configurations that do not have a behavior defined will default to False in order to be as safe as possible.  Presumeably this parameter would be defined in /etc/yum.repos.d/{yum, dnf}.conf

Background reasoning:
With a default behavior of yum4/dnf is skip_if_unavailable=True, dnf will log messages that a repository is unavailable, but continue with changes for other repositories that are available.

This could cause scripts to appear as though they have succeeded when in fact the repo is unavailable. Install, search, or update  operations will result in a return code of 0. Again, this occurs only if the desired repo is unavailable. 

Users may incorrectly assume that security errata was applied, or that complex layered applications such as openstack were updated as a complete state along with the OS, when in fact some repositories might have been unavailable.

This could be seen as a behavioral regression to prior releases of yum-3 in RHEL 7 and earlier.


Workaround: 
As a workaround one can add "skip_if_unavailable=False" to each of the BaseOS and AppStream repository entries in the /etc/yum.repos.d/redhat.repo file. This results in the behavior seen with yum3 on RHEL 7.

Comment 1 Jaroslav Mracek 2019-03-20 10:33:09 UTC
I create a patch https://github.com/rpm-software-management/libdnf/pull/701 that provides a global option skip_if_unavailable. The repo option "skip_if_unavailable" inherits the default value from the new global option.

Comment 11 errata-xmlrpc 2019-11-05 22:21:30 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:3583