Bug#993738: udev: symlink creation race condition can cause log delays
Lukas Schwaighofer
lukas at schwaighofer.name
Sun Sep 5 18:24:43 BST 2021
Package: udev
Version: 247.3-6
Severity: important
Dear systemd/udev Maintainers,
I've noticed a race condition with udev symlink creation, that can
cause long delays when activating logical volumes in LVM. Steps to
reproduce the problem (needs root):
# prepare
truncate -s 1G test.img
loop="$(losetup --show -f test.img)"
echo "Loop device used: $loop"
pvcreate "$loop"
vgcreate vgtest "$loop"
# create 50 LVs with an ext4 fs, all with same label
# (increase the number to make the problem more sever)
for i in `seq 0 49` ; do
lvcreate -L 4M -n dummy-${i} vgtest
mkfs.ext4 -L dummy /dev/vgtest/dummy-${i}
done
# set all LVs in vgtest as inactive
vgchange -an vgtest
# trigger the problem by activating all lvs with the same label at
# once (run `journalctl -f` in a different shell to see log
# messages)
vgchange -ay vgtest
# can be repeated by setting as inactive and then active again
# cleanup
vgchange -an vgtest
losetup -d "$loop"
rm test.img
Observe that the activation takes a very long time. The log is flodded
with messages like
dm-??: Failed to update device symlinks: Too many levels of symbolic links
The devices are opened only very slowly (observe by running
`ls /dev/vgtest` while the activation is in progress). This has
rendered one of my systems unbootable (wait for one of the necessary
volumes times out during boot).
I've temporarily worked around the issue by disabling the "by-label"
symlinks in udev for device mapper devices:
sed '/by-label/ s/^/#/' \
/lib/udev/rules.d/60-persistent-storage-dm.rules \
> /etc/udev/rules.d/60-persistent-storage-dm.rules
udevadm control --reload
Notice how the activation now is very fast. To undo this workaround
remove /etc/udev/rules.d/60-persistent-storage-dm.rules and reload udev
rules again.
The same issue is *not* present in the udev version from buster
(241-7~deb10u8).
Thank you
Lukas Schwaighofer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20210905/3fe454b8/attachment.sig>
More information about the Pkg-systemd-maintainers
mailing list