In the middle of doing a big upgrade of my babies… Err blade servers… Doing an upgrade from RHEL5.1 to RHEL5.2 across the internet in an SSH session and hit a hell of a problem.

File "/usr/lib/python2.4/site-packages/sqlite/main.py", line 97, in __getattr__
raise AttributeError, key
AttributeError: CHECKSUM_VALUE

I don’t know what caused this to happen, I can’t even explain why yum would do that to itself, but yum really is not my favourite little package. Worse yet, this affected pups as well. So I couldn’t upgrade from in a X session either.

There was only one solution on Google that I could find. Scared me to be honest because when you get that kind of problem, you want more than just the one. Especially when you’re doing a pretty major upgrade and the closest you can get to physical access is via an iLO2 admin session.

The fix? Not as difficult as I was expecting. It does appear to be working fine at the moment so I’m hoping that it really has fixed it. Read on for the details.

The fix is basically that the yum metadata has gotten totally screwed. Theres likely to be a couple of versions installed and you may even find you need to manually upgrade the yum components to resolve it.

Here’s the basic fix.

rpm -qa | grep yum-metadata-parser
rpm -ev --nodeps yum-metadata-parser-VERSIONFROMABOVECMD

cd /tmp
wget ftp://ftp.univie.ac.at/systems/linux...8.fc6.i386.rpm
rpm -iv ./yum-metadata-parser-1.0-8.fc6.i386.rpm
yum check-update

LinuxForums.org

However, I found that I still had both the old version of the metadata installed, plus the new version of the metadata installed, combined with the old version of yum instaled.

I manually used rpm to upgrade all the other yum packages by listing the filename of each rpm on the rpm -Uv command line. After that was done I then deleted both versions of the yum-metadata-* packages and ran the yum check-update again.

This got yum working, but it also caused problems with the upgrade from 5.1 to 5.2. Package dependencies were out of whack. Especially for Yelp. So I eventually gave up trying to solve that one and left “rhn_check -v” running.

Given its after 3am, I’m sure I’m missing stuff, but you can probably figure it out from there. Remember, Google is your friend. If you can’t find an answer on Google, leave a comment here and I’ll try to help out as best I can.