Pasted from #444563, which actually does seem to be the same bug:
I think I got it. In /lib/udev/rules.d/65-dmsetup.rules there's this line:
ENV{DM_UUID}=="LVM-*", PROGRAM="/bin/sh -c 'set `lvm lvdisplay -C -o vg_name,lv_name --noheadings /dev/$name` ; echo $1/$2'", SYMLINK+="$result"
which is a particularly fragile piece of shell script that doesn't do any error checking. Replacing it with:
ENV{DM_UUID}=="LVM-*", PROGRAM="/bin/sh -ec 'set -- $(lvm lvdisplay -C -o vg_name,lv_name --noheadings /dev/$name); echo ${2+$1/$2}'", SYMLINK+="$result"
will fix the errors and warnings. No more empty or bogus symlinks.
Pasted from #444563, which actually does seem to be the same bug:
I think I got it. In /lib/udev/ rules.d/ 65-dmsetup. rules there's this line:
ENV{DM_ UUID}== "LVM-*" , PROGRAM="/bin/sh -c 'set `lvm lvdisplay -C -o vg_name,lv_name --noheadings /dev/$name` ; echo $1/$2'", SYMLINK+="$result"
which is a particularly fragile piece of shell script that doesn't do any error checking. Replacing it with:
ENV{DM_ UUID}== "LVM-*" , PROGRAM="/bin/sh -ec 'set -- $(lvm lvdisplay -C -o vg_name,lv_name --noheadings /dev/$name); echo ${2+$1/$2}'", SYMLINK+="$result"
will fix the errors and warnings. No more empty or bogus symlinks.