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