Bug 505156

Summary: yum.metalink.MetaLinkRepoErrorParseFail: File /var/tmp/yum-newman-PhoCVC/fedora-source/metalink.xml does not exist
Product: [Fedora] Fedora Reporter: Michal Nowak <mnowak>
Component: yum-utilsAssignee: Seth Vidal <skvidal>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: james.antill, ohudlick, pmatilai, rudd-o, tim.lauridsen
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-06-26 15:24:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Nowak 2009-06-10 20:31:13 UTC
Description of problem:

Upgraded from F-10 to F-11.

newman ~ $ yumdownloader --source cairo
Loaded plugins: dellsysidplugin2, refresh-packagekit, upgrade-helper
Enabling rpmfusion-nonfree-updates-testing-source repository
Enabling updates-testing-source repository
Enabling rpmfusion-nonfree-updates-source repository
Enabling updates-source repository
Enabling rpmfusion-nonfree-source repository
Enabling rpmfusion-free-updates-source repository
Enabling rpmfusion-free-updates-testing-source repository
Enabling fedora-source repository
Enabling rpmfusion-free-source repository
Traceback (most recent call last):
  File "/usr/bin/yumdownloader", line 315, in <module>
    util = YumDownloader()
  File "/usr/bin/yumdownloader", line 50, in __init__
    self.main()
  File "/usr/bin/yumdownloader", line 87, in main
    self.downloadPackages(opts)
  File "/usr/bin/yumdownloader", line 244, in downloadPackages
    path = repo.getPackage(download, checkfunc=checkfunc)
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 798, in getPackage
    cache=cache
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 770, in _getFile
    result = self.grab.urlgrab(misc.to_utf8(relative), local,
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 496, in <lambda>
    grab = property(lambda self: self._getgrab())
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 491, in _getgrab
    self._setupGrab()
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 480, in _setupGrab
    self._grab = mgclass(self._grabfunc, self.urls,
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 628, in <lambda>
    urls = property(fget=lambda self: self._geturls(),
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 625, in _geturls
    self._baseurlSetup()
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 579, in _baseurlSetup
    mirrorurls.extend(list(self.metalink_data.urls()))
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 672, in <lambda>
    metalink_data = property(fget=lambda self: self._getMetalink(),
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 668, in _getMetalink
    self._metalink = metalink.MetaLinkRepoMD(self.metalink_filename)
  File "/usr/lib/python2.6/site-packages/yum/metalink.py", line 184, in __init__
    raise MetaLinkRepoErrorParseFail, "File %s does not exist" %filename
yum.metalink.MetaLinkRepoErrorParseFail: File /var/tmp/yum-newman-PhoCVC/fedora-source/metalink.xml does not exist


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

yum-utils-1.1.22-1.fc11.noarch
yum-3.2.23-3.fc11.noarch

How reproducible:

always

Actual results:

trace back + downloading is not working

Expected results:

Simple "File /var/tmp/yum-newman-PhoCVC/fedora-source/metalink.xml does not exist" is enough, I guess. Not sure from which file is the not existing file being referenced, though.

Comment 1 Michal Nowak 2009-06-25 11:59:56 UTC
While I understand that the problem might happen due to wrong permissions in tmp o yum cache, it looks like yumdownloader might run better and do not write out backtraces when permissions are not ideal.

Comment 2 seth vidal 2009-06-26 15:24:36 UTC
I've changed what the MetaLinkRepoErrorParseFail derives from. The next update to yum should include a patch which will allow yumdownloader to output a sensible-ish error and not traceback.

Comment 3 Rudd-O DragonFear 2009-06-26 23:22:12 UTC
thanks, seth.  but it should still -- methinks -- not be a repoerror -- if the file is not found, it should be an ioerror or an oserror (never quite understood the diff between the two).