On one of my RHEL 6 compatible systems, I ran out of space on /var, and after clearing space, yum kept throwing the above error message. After doing a Google search on the error, various suggestions were tried...
1. "yum clean all" (and variations on that to clear certain parts of the cache) didn't fix the problem.
2. "yum history new" also didn't help.
3. "rpm --rebuilddb" also didn't help.
Finally, after finding this posting...
http://linux.upubuntu.com/2012/04/yum-error-database-disk-image-is.html
... and looking at the bottom of the comment section, I found this command...
4. "yum makecache" did the trick!
Here I thought that running a "yum update" after "yum clean dbcache" or "yum clean all" would rebuild everything it needed, but apparently not. So, it's good to know that "yum makecache" will do a more thorough rebuild of the metadata.
Hope this is useful to any of you running yum/rpm-based distros!