Re: Yum crashed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux