Red Hat Bugzilla – Bug 1312286
RHEL 7.2 doesn't work with kickstart-tests proxy.py while Fedora 23 does
Last modified: 2017-08-28 03:32:30 EDT
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):
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
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.
Installation completes without error.
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.
Created attachment 1130814 [details]
Created attachment 1130815 [details]
Created attachment 1130816 [details]
Created attachment 1130817 [details]
Created attachment 1130818 [details]
Created attachment 1130831 [details]
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.
(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.
(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
> 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.
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).
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.
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.