Bug 1312286

Summary: RHEL 7.2 doesn't work with kickstart-tests proxy.py while Fedora 23 does
Product: Red Hat Enterprise Linux 7 Reporter: Alexander Todorov <atodorov>
Component: anacondaAssignee: Jiri Konecny <jkonecny>
Status: CLOSED NOTABUG QA Contact: Release Test Team <release-test-team-automation>
Severity: high Docs Contact:
Priority: high    
Version: 7.2CC: atodorov, bdhess, dshea, sbueno
Target Milestone: rc   
Target Release: ---   
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: 2017-04-12 08:02:40 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:
Attachments:
Description Flags
anaconda.log
none
packaging.log
none
program.log
none
storage.log
none
syslog
none
anaconda-yum.conf none

Description Alexander Todorov 2016-02-26 10:36:11 UTC
Description of problem:

I have specified http proxy for the base repository inside a RHEL 7.2 installation. The metadata seems to be downloaded OK via the proxy but when anaconda tries to download the first package it actually chokes. 

The UI shows "Error populating transaction, retrying"


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

How reproducible:
Always

Steps to Reproduce:
1. Use a Fedora 23 virt host (you need python3)
2. git clone https://github.com/rhinstaller/kickstart-tests
3. python3 ./kickstart-tests/scripts/proxy.py  - this starts a basic proxy on port 8080 listening on all interfaces

4. Using virt-manager create a new VM.
5. Boot from RHEL 7.2 boot.iso
6. Inside anaconda GUI enable networking and configure the base repo
7. Use proxy (IP of your host system, port 8080). For me this is 10.12.0.51:8080
8. Proceed with the install

Actual results:

Anaconda is able to download .treeinfo and metadata from the repository. I'm able to select package groups, etc. 

After partitioning is written to disk it tries to download dracut-config-rescue-033-359.el7.x86_64.rpm and this is when it starts to show errors.

After 10 retries (takes some time) the installation is aborted.

Expected results:
Installation completes without error.



Additional info:

If the VM is Fedora 23, using an internal HTTP url (on the same server as the RHEL 7.2 repo) I have no problems completing the installation. 

I have verified that the proxy itself works - from a second system I did:
$ export http_proxy=10.12.0.51:8080
$ wget http://...../dracut-config-rescue-033-359.el7.x86_64.rpm

The dracut RPM package was downloaded successfully.


During the entire time, proxy.py is printing success log messages:

192.168.122.42 - - [26/Feb/2016 10:30:57] "GET http://example.com/os/Packages/dracut-config-rescue-033-359.el7.x86_64.rpm HTTP/1.1" 200 -


And frankly I don't see anything in the logs to suggest what the problem might be.

Comment 1 Alexander Todorov 2016-02-26 10:38:50 UTC
Created attachment 1130814 [details]
anaconda.log

Comment 2 Alexander Todorov 2016-02-26 10:39:04 UTC
Created attachment 1130815 [details]
packaging.log

Comment 3 Alexander Todorov 2016-02-26 10:39:13 UTC
Created attachment 1130816 [details]
program.log

Comment 4 Alexander Todorov 2016-02-26 10:39:25 UTC
Created attachment 1130817 [details]
storage.log

Comment 5 Alexander Todorov 2016-02-26 10:39:40 UTC
Created attachment 1130818 [details]
syslog

Comment 7 Alexander Todorov 2016-02-26 12:55:04 UTC
Created attachment 1130831 [details]
anaconda-yum.conf

Comment 8 David Shea 2016-02-26 13:46:16 UTC
Have you tried with an actual proxy server? proxy.py is pretty basic, and it may be missing something that yum is trying to do with it.

Comment 9 Alexander Todorov 2016-02-29 12:26:30 UTC
(In reply to David Shea from comment #8)
> Have you tried with an actual proxy server? proxy.py is pretty basic, and it
> may be missing something that yum is trying to do with it.

No, I haven't. The whole idea is to try and get proxy.py + RHEL 7 yum play together. 

I've tried pointing yum.conf on my desktop system (also RHEL 7) to the same proxy and it works. I'm able to download metadata + packages so the problem is something within the anaconda environment.

Comment 11 Brian Lane 2016-03-12 01:04:52 UTC
(In reply to Alexander Todorov from comment #9)
> (In reply to David Shea from comment #8)
> > Have you tried with an actual proxy server? proxy.py is pretty basic, and it
> > may be missing something that yum is trying to do with it.
> 
> No, I haven't. The whole idea is to try and get proxy.py + RHEL 7 yum play
> together. 
> 
> I've tried pointing yum.conf on my desktop system (also RHEL 7) to the same
> proxy and it works. I'm able to download metadata + packages so the problem
> is something within the anaconda environment.

That isn't necessarily true. Please try with an actual proxy first. Also note that yum in the installer environment depends on support for partial content which doesn't work simple web servers. While this should be the same as the desktop I'm not 100% sure of that.

I've used 7.2 with polipo and haven't seen any problems.

Comment 12 Alexander Todorov 2016-05-31 13:30:45 UTC
I've tried pointing RHEL 7.2 anaconda to a Squid proxy running on a Fedora 23 host and didn't have any problems downloading and installing packages.

The only problem is downloading packages via proxy.py (repo metadata is downloaded just fine).

Comment 15 bdhess 2017-08-27 21:17:53 UTC
At the very least, it would be helpful if logging could be improved in this area.  I was pulling my hair out trying to figure out why I couldn't get a kickstart installation working serving with a Python SimpleHTTPServer.

It also seems like it would be fairly trivial for Anaconda to extract the byte ranges it needs itself in the event that the request is satisfied by an HTTP server that doesn't advertise support for range requests.

Comment 16 Jiri Konecny 2017-08-28 07:32:30 UTC
It depends on what logs you want to get. We are getting logs from yum, also we are logging some things by ourself. However, we are not able to provide you more information than we are able to get from yum and other other tools.

If you want better logging, please file a new bug. This bug is closed and it is specific to kickstart-tests not for logging in Anaconda.