lvremove claims LV to be open
So there is yet another possibility other than NFS, stale bash process and udev misbehaviour, namely partitions opened on the block device.
kpartx -d /dev/vg1/lv1
Then you can verify that # open drops to 0 in
It seems that there is a problem with the cooperation between lvm and udev.
lvremove, there are
udev change events for every available block device. Their processing seems to disturb the removal process, and removal fails.
The solution is to deactivate the LV(s) to be removed with
lvchange -an <given LV>. In this case, only a handful of "remove" events is created, which results from the associated
dm device being removed.
lvremove the now deactivated LV, there are still a lot of udev change events, but they do not affect the LV to be removed (because it doesn't exist in the dm any longer), so it works without problems.
Remove all mappings to that LV from /dev/mapper/ by deleting the symlinks and then you will be able to remove it.