Bug 1463723 - Unable to fetch RPM with repotrack in file:// mode - Issue in _getFile call
Unable to fetch RPM with repotrack in file:// mode - Issue in _getFile call
Status: NEW
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: yum (Show other bugs)
7.3
x86_64 Linux
unspecified Severity medium
: rc
: ---
Assigned To: Valentina Mukhamedzhanova
BaseOS QE Security Team
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-06-21 11:04 EDT by Olivier BONHOMME
Modified: 2017-08-09 09:40 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Olivier BONHOMME 2017-06-21 11:04:11 EDT
When using the tool repotrack for fetching some RPMS provided on a repository reachable in file mode (file:///), the download fails with the error file:///<XXXXX>/GeoIP-1.4.8-1.el6.x86_64.rpm: [Errno -1] Package does not match 
intended download.

Version-Release number of selected component (if applicable): yum-3.4.3-150.el7

How reproducible: Configure yum.conf with a repository with an URI starting by file:/// and try to fetch a RPM with the repotrack command.

Actual results: The download fails with the following stack trace !

Downloading GeoIP-1.4.8-1.el6.x86_64.rpm
Traceback (most recent call last):
  File "/usr/bin/repotrack", line 256, in <module>
    main()
  File "/usr/bin/repotrack", line 250, in main
    path = repo.getPackage(pkg)
  File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1070, in getPackage
    **kwargs
  File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1037, in _getFile
    raise e
yum.Errors.NoMoreMirrorsRepoError: failure: GeoIP-1.4.8-1.el6.x86_64.rpm from cots: [Errno 256] No more mirrors to try.
file:///<XXXXX>/GeoIP-1.4.8-1.el6.x86_64.rpm: [Errno -1] Package does not match intended download.


Expected results:

The RPM and all its dependencies are downloading successfully.

Additional info: I viewed the yum code and the errors seems to be into the yumRepo.py file when URLGrabber is called. The copy_local parameter is missing whereas it is used on all others calls.

Patching that call adding copy_local parameter with value 1 resolves the issue.

--- yumRepo.py.orig	2017-06-21 14:52:53.378000000 +0000
+++ yumRepo.py	2017-06-21 14:56:26.995000000 +0000
@@ -1062,6 +1062,7 @@
         try:
             ret = self._getFile(url=basepath,
                             relative=remote,
+			    copy_local=1,
                             local=local,
                             checkfunc=checkfunc,
                             text=text,
Comment 2 Olivier BONHOMME 2017-08-09 09:40:05 EDT
Hello,

Any news ?

Regards,

Note You need to log in before you can comment on or make changes to this bug.