(This may be related to bug 350455) I'm aware of the possibility of deadlocking the system if you try to move a logical volume that is the root volume, due to the lockfile being on that volume. However, yesterday I ran into deadlocks while trying to pvmove non-root volumes. I wanted to move all LVs on a VG from one device to the other. This has worked fine individually in the past, but when I ran pvmove without specifying a particular LV with each call (so that it moves all extents), I eventually deadlocked. Worse, when I rebooted and tried a pvmove --abort, I deadlocked then too. On #lvm on Freenode, the advice I was given was that pvmove can have locking issues even when not on the root volume, and to unconditionally use a lock directory not on the root volume: "just use /dev/.lvm or the new fangled udev pushing for /run/udev so /run/lvm would seem right. though i would think /dev/.lvm as it's in a tmpfs so wouldn't affect in pvmoving root LV." This sounds sensical; in light of the issues that the default of /var/lock/lvm for the lock directory can have both with moving root LVs and, apparently, non-root LVs, I'd like to suggest that the default be changed to /dev/.lvm as suggested (since Gentoo systems don't normally use /run currently).
agk: change it the default in your upstream code? /run is coming in Gentoo.
This should be solved now with /run directory in baselayout-2.2, and lvm2-2.02.100.