Bug 1788576

Summary: Upgrade fails downloading packages when repository hostname is defined in /etc/hosts only
Product: Red Hat Enterprise Linux 7 Reporter: Renaud Métrich <rmetrich>
Component: leapp-repositoryAssignee: Leapp team <leapp-notifications>
Status: CLOSED ERRATA QA Contact: Alois Mahdal <amahdal>
Severity: high Docs Contact:
Priority: high    
Version: 7.7CC: aeladawy, amarecek, cbesson, mbocek, pstodulk
Target Milestone: rcKeywords: Upgrades
Target Release: ---   
Hardware: All   
OS: Linux   
Fixed In Version: leapp-repository-0.10.0-2.el7_8 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-29 01:45:58 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:

Description Renaud Métrich 2020-01-07 14:37:19 UTC
Description of problem:

This can be particularly seen with Satellite installations defining another repository than cdn.redhat.com.
When the repository is *not* resolvable through DNS, but is only known to /etc/hosts, the upgrade of the system fails with the following error in "phase 2" (systemd-nspawn -D /var/lib/leapp/el8userspace ...):

[MIRROR] irqbalance-1.4.0-4.el8.x86_64.rpm: Curl error (6): Couldn't resolve host name for https://<HOSTNAME>/content/dist/rhel8/8.1/x86_64/baseos/os/Packages/i/irqbalance-1.4.0-4.el8.x86_64.rpm [Could not resolve host: <HOSTNAME>]

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


How reproducible:


Steps to Reproduce:
1. Make sure "cdn.redhat.com" is not available through DNS

 - add "PEERDNS=no" in /etc/sysconfig/network-scripts/ifcfg-XXX file
 - restart the network
 - empty file /etc/resolv.conf
 - add entry to /etc/hosts:	cdn.redhat.com	subscription.rhsm.redhat.com

2. Run "leapp upgrade"

Actual results:

Fails fetching packages in 2nd phase

Additional info:

This is due to /etc/hosts from the hosts not being available in /var/lib/leapp/el8userspace.
Instead /var/lib/leapp/el8userspace/etc/hosts contains the default file (with "localhost" entries only) installed by setup-2.12.2-2.el8_1.1.noarch.rpm

Comment 2 Renaud Métrich 2020-01-07 14:41:28 UTC
Prior to executing phase 2 ("systemd-nspawn -D /var/lib/leapp/el8userspace ..."), /etc/hosts from the system must be copied to /var/lib/leapp/el8userspace/etc

Comment 3 Petr Stodulka 2020-01-07 15:03:18 UTC
Thanks Renaud for report and investigation! I have feeling that we probably missed this possible issue several times. I will add fix fix soon.

Comment 4 Renaud Métrich 2020-01-07 15:16:03 UTC
Note that probably other files need to be copied as well, e.g. /etc/nsswitch.conf if using alternative resolution methods (Centrify, ...)

Comment 5 Petr Stodulka 2020-01-07 15:28:13 UTC
Good point. I will probably sync with network sst about the proper solution as it looks this is just the tip of the iceberg.

Comment 6 Petr Stodulka 2020-04-17 10:20:08 UTC
related PR: https://github.com/oamg/leapp-repository/pull/474

Comment 12 errata-xmlrpc 2020-04-29 01:45:58 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.