Re: Yum crashed
- From: stan <gryt2@xxxxx>
- Date: Sun, 20 Mar 2011 11:02:52 -0700
On Sun, 20 Mar 2011 12:28:09 +0000
Krosh Ivanov <krosh.ivan@xxxxxxxxx> wrote:
I think my yum installation crashed, but I tried following some hints
given by some sites, nothing works. Error message is here:
http://paste.ideaslabs.com/show/n5Wfu6wqja
The key part is
File "/usr/lib/python2.6/site-packages/yum/config.py", line 1010, in
_getsysver hdr = idx.next()
StopIteration
On my F14 system, that file, config.py is in python2.7. So you must
be running an earlier Fedora that still uses python 2.6. The function
being called is defined on my system as
def _getsysver(installroot, distroverpkg):
'''Calculate the release version for the system.
@param installroot: The value of the installroot option.
@param distroverpkg: The value of the distroverpkg option.
@return: The release version as a string (eg. '4' for FC4)
'''
ts = rpmUtils.transaction.initReadOnlyTransaction(root=installroot)
ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
try:
idx = ts.dbMatch('provides', distroverpkg)
except TypeError, e:
# This is code for "cannot open rpmdb"
# this is for pep 352 compliance on python 2.6 and above :(
if sys.hexversion < 0x02050000:
if hasattr(e,'message'):
raise Errors.YumBaseError("Error: " + str(e.message))
else:
raise Errors.YumBaseError("Error: " + str(e))
raise Errors.YumBaseError("Error: " + str(e))
except rpm.error, e:
# This is the "new" code for "cannot open rpmdb", 4.8.0 ish
raise Errors.YumBaseError("Error: " + str(e))
# we're going to take the first one - if there is more than one of these
# then the user needs a beating
if idx.count() == 0:
releasever = '$releasever'
else:
hdr = idx.next()
releasever = hdr['version']
del hdr
del idx
del ts
return releasever
The line that's failing is the line where it is trying to get the next
hdr value from an iterator. It seems there is an inconsistency between
the count idx is providing and the actual available. It thinks there
is one, but it isn't there.
If you are feeling adventurous, you could comment out the whole if /
else block and just replace it with releasever = '$releasever' suitably
indented (at the same level as the if / else block).
Another option is to put in a print statement to gather the values that
are being passed to the function when it fails. Then run the python
command line interpreter, import this module, and manually execute the
various steps to see what is happening.
This seems to be a bug, but as Kevin said, it will take more
information to determine that.
--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
- References:
- Yum crashed
- From: Krosh Ivanov
- Yum crashed
- Prev by Date: Re: How to compile a soft same as the version realeased by fedora?
- Next by Date: Re: How to compile a soft same as the version realeased by fedora?
- Previous by thread: Re: Yum crashed
- Next by thread: Re: Yum crashed
- Index(es):