Bug 1716313

Summary: libdnf context doesn't honor skip_if_unavailable=True for local repositories
Product: Red Hat Enterprise Linux 8 Reporter: Jaroslav Rohel <jrohel>
Component: libdnfAssignee: Jaroslav Rohel <jrohel>
Status: CLOSED ERRATA QA Contact: Eva Mrakova <emrakova>
Severity: unspecified Docs Contact:
Priority: high    
Version: 8.0CC: dmach, emrakova, jberan
Target Milestone: rcKeywords: Triaged
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libdnf-0.35.1-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 22:22:10 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:    
Bug Blocks: 1689331    

Description Jaroslav Rohel 2019-06-03 08:11:55 UTC
Description of problem:

libdnf context doesn't honor skip_if_unavailable=True for local repositories

# rpm -q libdnf
libdnf-0.34.0-0.3g10ba5293.fc29.x86_64

# cat /etc/yum.repos.d/local2.repo 
[local2]
gpgcheck=0
enabled=1
name=local2
baseurl=file:///no/such/repo
skip_if_unavailable=1

It can be reproduced by microdnf:
# microdnf install iftop
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
error: /no/such/repo was not found

DNF works OK ("local2" repo is skipped):
# dnf repoquery iftop
local2                                                                                                    0.0  B/s |   0  B     00:00    
Failed to synchronize cache for repo 'local2'
Ignoring repositories: local2
Last metadata expiration check: 0:12:00 ago on Mon Jun  3 09:50:06 2019.
iftop-0:1.0-0.18.pre4.fc29.x86_64

It affect only local and media repos. Remote repos are handled correctly. Example with remote repo "virtualbox" (repo is skipped):
# microdnf install iftop
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Error creating proxy: The connection is closed (g-io-error-quark, 18)
Downloading metadata...

(microdnf:25175): libdnf-WARNING **: 10:06:11.834: Skipping refresh of virtualbox: cannot update repo 'virtualbox': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried; Last error: Status code: 404 for http://download.virtualbox.org/virtualbo/rpm/fedora/29/x86_64/repodata/repomd.xml
Nothing to do.

Comment 1 Jaroslav Rohel 2019-06-03 08:29:10 UTC
PR: https://github.com/rpm-software-management/libdnf/pull/742

Comment 7 errata-xmlrpc 2019-11-05 22:22:10 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