mirror of
https://github.com/siderolabs/extensions.git
synced 2026-05-05 12:16:46 +02:00
multipathd uses libudev's udev_enumerate_scan_devices() during initialization to discover block devices. This function reads from /run/udev/data/ to enumerate initialized devices. Without /run/udev mounted: 1. path_discovery() in discovery.c returns no devices 2. The internal pathvec stays empty 3. Uevents still arrive via netlink (which works without /run/udev) 4. find_path_by_dev() in main.c can't find paths in empty pathvec 5. Results in "spurious uevent, path not found" errors Investigation details: - Verified /etc/multipath.conf is correctly mounted in container - Confirmed /dev and /sys are accessible with correct device info - Found /run/udev missing: only multipathd.pid and multipathd.socket exist in /run inside the container - Traced error to udev_enumerate functions needing /run/udev/data/ References: - https://github.com/openSUSE/multipath-tools/blob/master/libmultipath/discovery.c - https://man7.org/linux/man-pages/man3/libudev.3.html Signed-off-by: Jonathan Senecal <contact@jonathansenecal.com> Signed-off-by: Noel Georgi <git@frezbo.dev> (cherry picked from commit 4a2d41f53278cf5996ed8e997c5d26c374566581)