I have an instance of Fedora Core 6 in VMWare that would hang every time I ran yum, the auto-updater. The only way to kill it at that point was with a SIGKILL. Yesterday I got to the point where I really wanted it to work, so I dug around a little and found a solution.
The bottom line is that it's waiting for a lock to clear that never will. Doing this (after killing yum):
rm -f /var/lib/rpm/__db.*
solves the problem. Apparently this has been a problem since Redhat 9. I can't remember quite how I debugged these kinds of problems before Google, but it must have been ugly.