When I was trying to update packages on one host I’ve stuck with yum hung on update. I run strace and see:

strace -p 43734
Process 43734 attached - interrupt to quit
futex(0x807c938, FUTEX_WAIT, 1, NULL <unfinished ...>
Process 43734 detached

It looks like yum database was corrupted, to repair this run:

rm -f /var/lib/rpm/__db*
rpm --rebuilddb
yum clean all
yum update

Instead rm on db-files you could use gzip to have backup of these files.