In another run, dmsetup splitname does work on rhel-root but still no device under /dev (different bug?) I also added "udevadm info /dev/mapper/*-*" line after the pvscan
+ lvm pvscan --cache --activate ay :0002632: sd-device-monitor: Passed 133 byte to netlink monitor :0003312: Device (SEQNUM=992, ACTION=add) is queued :0003312: Processing device (SEQNUM=992, ACTION=add) :0003312: Device (SEQNUM=992, ACTION=add) processed:0003312: sd-device-monitor: Passed 133 byte to netlink monitor device-mapper: Device (SEQNUM=993, ACTION=add) is queued device-mapper: Processing device (SEQNUM=993, ACTION=add) device-mapper: NAME 'mapper/control' /lib/udev/rules.d/55-dm.rules:31 device-mapper: sd-device-monitor: Passed 194 byte to netlink monitor :0003312: sd-device-monitor: Passed 133 byte to netlink monitor device-mapper: Handling device node '/dev/mapper/control', devnum=c10:236, mode=0600, uid=0, gid=0 device-mapper: Preserve permissions of /dev/mapper/control, 020600, uid=0, gid=0 device-mapper: Creating symlink '/dev/char/10:236' to '../mapper/control' device-mapper: sd-device: Created empty file '/run/udev/data/c10:236' for '/devices/virtual/misc/device-mapper' device-mapper: Device (SEQNUM=993, ACTION=add) processed device-mapper: sd-device-monitor: Passed 194 byte to netlink monitor 253:0: Device (SEQNUM=994, ACTION=add) is queued 253:0: Processing device (SEQNUM=994, ACTION=add) 253:0: Device (SEQNUM=994, ACTION=add) processed 253:0: sd-device-monitor: Passed 137 byte to netlink monitor253:0: sd-device-monitor: Passed 137 byte to netlink monitor dm-0: Device (SEQNUM=995, ACTION=add) is queued dm-0: Processing device (SEQNUM=995, ACTION=add) dm-0: GROUP 0 /lib/udev/rules.d/50-udev-default.rules:59dm-0: sd-device-monitor: Passed 189 byte to netlink monitor dm-0: Handling device node '/dev/dm-0', devnum=b253:0, mode=0600, uid=0, gid=0 dm-0: Preserve permissions of /dev/dm-0, 060600, uid=0, gid=0dm-0: Device (SEQNUM=996, ACTION=change) is queued dm-0: Creating symlink '/dev/block/253:0' to '../dm-0' dm-0: sd-device: Created db file '/run/udev/data/b253:0' for '/devices/virtual/block/dm-0'253:1: Device (SEQNUM=997, ACTION=add) is queued dm-0: Device (SEQNUM=995, ACTION=add) processed dm-0: sd-device-monitor: Passed 328 byte to netlink monitor 253:1: Processing device (SEQNUM=997, ACTION=add) 253:1: Device (SEQNUM=997, ACTION=add) processed253:1: sd-device-monitor: Passed 137 byte to netlink monitor dm-0: Processing device (SEQNUM=996, ACTION=change) dm-0: IMPORT '/sbin/dmsetup udevflags 6340809' /lib/udev/rules.d/55-dm.rules:52 253:1: sd-device-monitor: Passed 137 byte to netlink monitor dm-0: sd-device-monitor: Passed 210 byte to netlink monitor Starting '/sbin/dmsetup udevflags 6340809' Successfully forked off '(spawn)' as PID 137. dm-1: Device (SEQNUM=998, ACTION=add) is queued dm-1: Processing device (SEQNUM=998, ACTION=add)dm-1: sd-device-monitor: Passed 189 byte to netlink monitor dm-1: Device (SEQNUM=999, ACTION=change) is queued dm-1: GROUP 0 /lib/udev/rules.d/50-udev-default.rules:59 dm-1: Handling device node '/dev/dm-1', devnum=b253:1, mode=0600, uid=0, gid=0'/sbin/dmsetup udevflags 6340809'(out) 'DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG='1'' dm-1: Preserve permissions of /dev/dm-1, 060600, uid=0, gid=0 dm-1: Creating symlink '/dev/block/253:1' to '../dm-1' '/sbin/dmsetup udevflags 6340809'(out) 'DM_UDEV_PRIMARY_SOURCE_FLAG='1'' Process '/sbin/dmsetup udevflags 6340809' succeeded. dm-0: LINK 'mapper/rhel-swap' /lib/udev/rules.d/55-dm.rules:136dm-1: sd-device: Created db file '/run/udev/data/b253:1' for '/devices/virtual/block/dm-1' dm-0: IMPORT '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-swap' /lib/udev/rules.d/56-lvm.rules:21 dm-1: Device (SEQNUM=998, ACTION=add) processed dm-1: sd-device-monitor: Passed 328 byte to netlink monitor Starting '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-swap' dm-1: sd-device-monitor: Passed 210 byte to netlink monitor dm-1: Processing device (SEQNUM=999, ACTION=change) Successfully forked off '(spawn)' as PID 138. '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-swap'(out) 'DM_VG_NAME='rhel'' '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-swap'(out) 'DM_LV_NAME='swap'' '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-swap'(out) 'DM_LV_LAYER='''dm-1: IMPORT '/sbin/dmsetup udevflags 6340809' /lib/udev/rules.d/55-dm.rules:52 Starting '/sbin/dmsetup udevflags 6340809' Successfully forked off '(spawn)' as PID 139. Process '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-swap' succeeded. dm-0: LINK 'rhel/swap' /lib/udev/rules.d/56-lvm.rules:47Process '/sbin/dmsetup udevflags 6340809' succeeded. dm-0: LINK 'disk/by-id/dm-name-rhel-swap' /lib/udev/rules.d/60-persistent-storage-dm.rules:17 dm-0: LINK 'disk/by-id/dm-uuid-LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp' /lib/udev/rules.d/60-persistent-storage-dm.rules:18 dm-0: IMPORT builtin 'blkid' /lib/udev/rules.d/60-persistent-storage-dm.rules:23 dm-1: LINK 'mapper/rhel-root' /lib/udev/rules.d/55-dm.rules:136 dm-0: Probe /dev/dm-0 with raid and offset=0 dm-1: IMPORT '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-root' /lib/udev/rules.d/56-lvm.rules:21 Starting '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-root' Successfully forked off '(spawn)' as PID 140. '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-root'(out) 'DM_VG_NAME='rhel'' '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-root'(out) 'DM_LV_NAME='root''dm-0: LINK 'disk/by-uuid/7ed3e932-edd1-4d73-9272-5a7c05ba84d5' /lib/udev/rules.d/60-persistent-storage-dm.rules:25 '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-root'(out) 'DM_LV_LAYER=''' dm-0: RUN '/sbin/dmsetup udevcomplete $env{DM_COOKIE}' /lib/udev/rules.d/95-dm-notify.rules:12 dm-0: Handling device node '/dev/dm-0', devnum=b253:0, mode=0600, uid=0, gid=0 Process '/sbin/dmsetup -v splitname --nameprefixes --noheadings --rows rhel-root' succeeded. dm-1: RUN '/sbin/dmsetup udevcomplete $env{DM_COOKIE}' /lib/udev/rules.d/95-dm-notify.rules:12 dm-0: Preserve already existing symlink '/dev/block/253:0' to '../dm-0' dm-1: Handling device node '/dev/dm-1', devnum=b253:1, mode=0600, uid=0, gid=0 dm-0: Creating symlink '/dev/disk/by-id/dm-name-rhel-swap' to '../../dm-0' dm-0: Creating symlink '/dev/disk/by-uuid/7ed3e932-edd1-4d73-9272-5a7c05ba84d5' to '../../dm-0' dm-1: Preserve already existing symlink '/dev/block/253:1' to '../dm-1' dm-0: Creating symlink '/dev/mapper/rhel-swap' to '../dm-0' dm-1: Creating symlink '/dev/mapper/rhel-root' to '../dm-1' dm-0: Creating symlink '/dev/disk/by-id/dm-uuid-LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp' to '../../dm-0'dm-1: sd-device: Created db file '/run/udev/data/b253:1' for '/devices/virtual/block/dm-1' dm-0: Creating symlink '/dev/rhel/swap' to '../dm-0' dm-0: sd-device: Created db file '/run/udev/data/b253:0' for '/devices/virtual/block/dm-0' Starting '/sbin/dmsetup udevcomplete 6340809' Successfully forked off '(spawn)' as PID 141. Starting '/sbin/dmsetup udevcomplete 6340809' Successfully forked off '(spawn)' as PID 142.Process '/sbin/dmsetup udevcomplete 6340809' succeeded. dm-1: Device (SEQNUM=999, ACTION=change) processed dm-1: sd-device-monitor: Passed 555 byte to netlink monitor 2 logical volume(s) in volume group "rhel" now active Process '/sbin/dmsetup udevcomplete 6340809' succeeded. dm-0: Adding watch on '/dev/dm-0' dm-0: sd-device: Created db file '/run/udev/data/b253:0' for '/devices/virtual/block/dm-0' dm-0: Device (SEQNUM=996, ACTION=change) processed dm-0: sd-device-monitor: Passed 901 byte to netlink monitor + udevadm info /dev/mapper/rhel-root /dev/mapper/rhel-swap P: /devices/virtual/block/dm-1 N: dm-1 L: 0 S: mapper/rhel-root E: DEVPATH=/devices/virtual/block/dm-1 E: DEVNAME=/dev/dm-1 E: DEVTYPE=disk E: MAJOR=253 E: MINOR=1 E: SUBSYSTEM=block E: USEC_INITIALIZED=10585563 E: DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG=1 E: DM_UDEV_DISABLE_DISK_RULES_FLAG=1 E: DM_UDEV_DISABLE_OTHER_RULES_FLAG=1 E: DM_NAME=rhel-root E: DM_UUID=LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboJq5285kndk6TL6cxXmB4CccqViTqwI6r E: DM_SUSPENDED=0 E: DM_UDEV_RULES=1 E: DM_UDEV_RULES_VSN=2 E: DM_VG_NAME=rhel E: DM_LV_NAME=root E: DEVLINKS=/dev/mapper/rhel-root E: TAGS=:systemd: P: /devices/virtual/block/dm-0 N: dm-0 L: 0 S: disk/by-uuid/7ed3e932-edd1-4d73-9272-5a7c05ba84d5 S: mapper/rhel-swap S: disk/by-id/dm-name-rhel-swap S: rhel/swap S: disk/by-id/dm-uuid-LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp E: DEVPATH=/devices/virtual/block/dm-0 E: DEVNAME=/dev/dm-0 E: DEVTYPE=disk E: MAJOR=253 E: MINOR=0 E: SUBSYSTEM=block E: USEC_INITIALIZED=10478639 E: DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG=1 E: DM_UDEV_PRIMARY_SOURCE_FLAG=1 E: DM_ACTIVATION=1 E: DM_NAME=rhel-swap E: DM_UUID=LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp E: DM_SUSPENDED=0 E: DM_UDEV_RULES=1 E: DM_UDEV_RULES_VSN=2 E: DM_VG_NAME=rhel E: DM_LV_NAME=swap E: ID_FS_UUID=7ed3e932-edd1-4d73-9272-5a7c05ba84d5 E: ID_FS_UUID_ENC=7ed3e932-edd1-4d73-9272-5a7c05ba84d5 E: ID_FS_VERSION=1 E: ID_FS_TYPE=swap E: ID_FS_USAGE=other E: DEVLINKS=/dev/disk/by-uuid/7ed3e932-edd1-4d73-9272-5a7c05ba84d5 /dev/mapper/rhel-swap /dev/disk/by-id/dm-name-rhel-swap /dev/rhel/swap /dev/disk/by-id/dm-uuid-LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp E: TAGS=:systemd: In this run for some reason lvm has set the following on the device: E: DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG=1 Sam On Wed, Apr 7, 2021 at 5:19 PM Sam Eiderman <sam...@google.com> wrote: > I think this is the interesting part: > > + lvm pvscan --cache --activate ay > device-mapper: Device (SEQNUM=993, ACTION=add) is queued > device-mapper: sd-device-monitor: Passed 193 byte to netlink monitor > device-mapper: Processing device (SEQNUM=993, ACTION=add) > device-mapper: NAME 'mapper/control' /lib/udev/rules.d/55-dm.rules:31 > device-mapper: Handling device node '/dev/mapper/control', devnum=c10:236, > mode=0600, uid=0, gid=0 > device-mapper: Preserve permissions of /dev/mapper/control, 020600, uid=0, > gid=0 > device-mapper: Creating symlink '/dev/char/10:236' to '../mapper/control' > device-mapper: sd-device: Created empty file '/run/udev/data/c10:236' for > '/devices/virtual/misc/device-mapper' > device-mapper: Device (SEQNUM=993, ACTION=add) processed > device-mapper: sd-device-monitor: Passed 193 byte to netlink monitor > 253:0: Device (SEQNUM=994, ACTION=add) is queued > 253:0: sd-device-monitor: Passed 136 byte to netlink monitor > 253:0: Processing device (SEQNUM=994, ACTION=add) > 253:0: Device (SEQNUM=994, ACTION=add) processed > 253:0: sd-device-monitor: Passed 136 byte to netlink monitor > dm-0: Device (SEQNUM=995, ACTION=add) is queued > dm-0: sd-device-monitor: Passed 188 byte to netlink monitor > dm-0: Processing device (SEQNUM=995, ACTION=add) > dm-0: GROUP 0 /lib/udev/rules.d/50-udev-default.rules:59 > dm-0: Handling device node '/dev/dm-0', devnum=b253:0, mode=0600, uid=0, gid=0 > dm-0: Preserve permissions of /dev/dm-0, 060600, uid=0, gid=0 > dm-0: Creating symlink '/dev/block/253:0' to '../dm-0'dm-0: Device > (SEQNUM=996, ACTION=change) is queued > 253:1: Device (SEQNUM=997, ACTION=add) is queued > 253:1: Processing device (SEQNUM=997, ACTION=add) > 253:1: Device (SEQNUM=997, ACTION=add) processed > 253:1: sd-device-monitor: Passed 136 byte to netlink monitor > 253:1: sd-device-monitor: Passed 136 byte to netlink monitor > dm-1: Device (SEQNUM=998, ACTION=add) is queued > dm-1: Processing device (SEQNUM=998, ACTION=add) > dm-1: GROUP 0 /lib/udev/rules.d/50-udev-default.rules:59 > dm-1: Handling device node '/dev/dm-1', devnum=b253:1, mode=0600, uid=0, gid=0 > dm-1: Preserve permissions of /dev/dm-1, 060600, uid=0, gid=0 > dm-1: Creating symlink '/dev/block/253:1' to '../dm-1' > dm-1: sd-device: Created db file '/run/udev/data/b253:1' for > '/devices/virtual/block/dm-1' > dm-1: Device (SEQNUM=998, ACTION=add) processeddm-1: sd-device-monitor: > Passed 188 byte to netlink monitor > dm-1: Device (SEQNUM=999, ACTION=change) is queued > > dm-0: sd-device: Created db file '/run/udev/data/b253:0' for > '/devices/virtual/block/dm-0' > dm-0: Device (SEQNUM=995, ACTION=add) processed > dm-0: sd-device-monitor: Passed 327 byte to netlink monitor > dm-0: sd-device-monitor: Passed 209 byte to netlink monitor > > dm-1: sd-device-monitor: Passed 327 byte to netlink monitordm-0: Processing > device (SEQNUM=996, ACTION=change) > dm-0: IMPORT '/sbin/dmsetup udevflags 6336918' > /lib/udev/rules.d/55-dm.rules:52 > Starting '/sbin/dmsetup udevflags 6336918' > Successfully forked off '(spawn)' as PID 136. > > dm-1: sd-device-monitor: Passed 209 byte to netlink monitor > dm-1: Processing device (SEQNUM=999, ACTION=change) > dm-1: IMPORT '/sbin/dmsetup udevflags 6336918' > /lib/udev/rules.d/55-dm.rules:52 > Starting '/sbin/dmsetup udevflags 6336918' > Successfully forked off '(spawn)' as PID 137. > '/sbin/dmsetup udevflags 6336918'(out) > 'DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG='1'' > '/sbin/dmsetup udevflags 6336918'(out) 'DM_UDEV_PRIMARY_SOURCE_FLAG='1'' > Process '/sbin/dmsetup udevflags 6336918' succeeded. > dm-0: LINK 'mapper/rhel-swap' /lib/udev/rules.d/55-dm.rules:136 > dm-0: IMPORT '/sbin/dmsetup splitname --nameprefixes --noheadings --rows > rhel-swap' /lib/udev/rules.d/56-lvm.rules:21 > Starting '/sbin/dmsetup splitname --nameprefixes --noheadings --rows > rhel-swap' > Successfully forked off '(spawn)' as PID 138.'/sbin/dmsetup udevflags > 6336918'(out) 'DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG='1'' > '/sbin/dmsetup udevflags 6336918'(out) 'DM_UDEV_PRIMARY_SOURCE_FLAG='1'' > > '/sbin/dmsetup splitname --nameprefixes --noheadings --rows rhel-swap'(out) > 'DM_VG_NAME='rhel'' > '/sbin/dmsetup splitname --nameprefixes --noheadings --rows rhel-swap'(out) > 'DM_LV_NAME='swap'' > '/sbin/dmsetup splitname --nameprefixes --noheadings --rows rhel-swap'(out) > 'DM_LV_LAYER=''' > Process '/sbin/dmsetup splitname --nameprefixes --noheadings --rows > rhel-swap' succeeded.Process '/sbin/dmsetup udevflags 6336918' succeeded. > dm-1: LINK 'mapper/rhel-root' /lib/udev/rules.d/55-dm.rules:136 > dm-1: IMPORT '/sbin/dmsetup splitname --nameprefixes --noheadings --rows > rhel-root' /lib/udev/rules.d/56-lvm.rules:21 > Starting '/sbin/dmsetup splitname --nameprefixes --noheadings --rows > rhel-root' > Successfully forked off '(spawn)' as PID 139. > > dm-0: LINK 'rhel/swap' /lib/udev/rules.d/56-lvm.rules:47 > dm-0: LINK 'disk/by-id/dm-name-rhel-swap' > /lib/udev/rules.d/60-persistent-storage-dm.rules:17 > dm-0: LINK > 'disk/by-id/dm-uuid-LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp' > /lib/udev/rules.d/60-persistent-storage-dm.rules:18 > dm-0: IMPORT builtin 'blkid' > /lib/udev/rules.d/60-persistent-storage-dm.rules:23 > dm-0: Probe /dev/dm-0 with raid and offset=0 > Process '/sbin/dmsetup splitname --nameprefixes --noheadings --rows > rhel-root' succeeded. > dm-1: RUN '/sbin/dmsetup udevcomplete $env{DM_COOKIE}' > /lib/udev/rules.d/95-dm-notify.rules:12 > dm-1: Handling device node '/dev/dm-1', devnum=b253:1, mode=0600, uid=0, gid=0 > dm-1: Preserve already existing symlink '/dev/block/253:1' to '../dm-1' > dm-1: Creating symlink '/dev/mapper/rhel-root' to '../dm-1' > dm-1: sd-device: Created db file '/run/udev/data/b253:1' for > '/devices/virtual/block/dm-1' > Starting '/sbin/dmsetup udevcomplete 6336918' > Successfully forked off '(spawn)' as PID 140. > dm-0: LINK 'disk/by-uuid/7ed3e932-edd1-4d73-9272-5a7c05ba84d5' > /lib/udev/rules.d/60-persistent-storage-dm.rules:25 > Process '/sbin/dmsetup udevcomplete 6336918' succeeded. > dm-1: Device (SEQNUM=999, ACTION=change) processed > dm-1: sd-device-monitor: Passed 556 byte to netlink monitor > dm-0: RUN '/sbin/dmsetup udevcomplete $env{DM_COOKIE}' > /lib/udev/rules.d/95-dm-notify.rules:12 > dm-0: Handling device node '/dev/dm-0', devnum=b253:0, mode=0600, uid=0, gid=0 > dm-0: Preserve already existing symlink '/dev/block/253:0' to '../dm-0' > dm-0: Creating symlink '/dev/rhel/swap' to '../dm-0' > dm-0: Creating symlink > '/dev/disk/by-id/dm-uuid-LVM-x06hRU2yvmTSN0lIa6z1DKEgd9r51XboEVgg8YdhPyNGooshjsJZFwDraGqJBAAp' > to '../../dm-0' > dm-0: Creating symlink > '/dev/disk/by-uuid/7ed3e932-edd1-4d73-9272-5a7c05ba84d5' to '../../dm-0' > dm-0: Creating symlink '/dev/mapper/rhel-swap' to '../dm-0' > dm-0: Creating symlink '/dev/disk/by-id/dm-name-rhel-swap' to '../../dm-0' > dm-0: sd-device: Created db file '/run/udev/data/b253:0' for > '/devices/virtual/block/dm-0' > Starting '/sbin/dmsetup udevcomplete 6336918' > Successfully forked off '(spawn)' as PID 141. > 2 logical volume(s) in volume group "rhel" now active > Process '/sbin/dmsetup udevcomplete 6336918' succeeded. > dm-0: Adding watch on '/dev/dm-0' > dm-0: sd-device: Created db file '/run/udev/data/b253:0' for > '/devices/virtual/block/dm-0' > dm-0: Device (SEQNUM=996, ACTION=change) processed > dm-0: sd-device-monitor: Passed 900 byte to netlink monitor > > > For some reason the following process didn't return anything (but > succeeded): > > /sbin/dmsetup splitname --nameprefixes --noheadings --rows rhel-root > > However: > > /sbin/dmsetup splitname --nameprefixes --noheadings --rows rhel-swap > > Correctly returned: > > DM_VG_NAME='rhel' > DM_LV_NAME='swap' > DM_LV_LAYER='' > > I wonder why > > On Wed, Apr 7, 2021 at 4:36 PM Sam Eiderman <sam...@google.com> wrote: > >> I managed to get a reproduction with udevd --debug. >> >> I just waited for g.inspect_os() (per g.launch()) to fail return anything >> (/dev/rhel/root symlink doesn't exist) in 32 concurrent executions >> >> Attached output (~300KB). >> >> Thanks! >> Sam >> >> On Tue, Apr 6, 2021 at 7:29 PM Sam Eiderman <sam...@google.com> wrote: >> >>> FYI, in debian the rules are a bit in a different flavor: >>> >>> 01-md-raid-creating.rules >>> 50-firmware.rules >>> 50-udev-default.rules >>> >>> 55-dm.rules >>> 56-lvm.rules >>> >>> 60-block.rules >>> 60-cdrom_id.rules >>> 60-drm.rules >>> 60-evdev.rules >>> 60-input-id.rules >>> 60-persistent-alsa.rules >>> 60-persistent-input.rules >>> 60-persistent-storage-dm.rules >>> 60-persistent-storage-tape.rules >>> 60-persistent-storage.rules >>> 60-persistent-v4l.rules >>> 60-sensor.rules >>> 60-serial.rules >>> 63-md-raid-arrays.rules >>> 64-btrfs-dm.rules >>> 64-btrfs.rules >>> 64-md-raid-assembly.rules >>> 69-lvm-metad.rules >>> 69-md-clustered-confirm-device.rules >>> 70-joystick.rules >>> 70-mouse.rules >>> 70-power-switch.rules >>> 70-touchpad.rules >>> 70-uaccess.rules >>> 71-seat.rules >>> 73-seat-late.rules >>> 73-special-net-names.rules >>> 73-usb-net-by-mac.rules >>> 75-net-description.rules >>> 75-probe_mtd.rules >>> 78-sound-card.rules >>> 80-debian-compat.rules >>> 80-drivers.rules >>> 80-net-setup-link.rules >>> 82-gfs2-withdraw.rules >>> 85-hwclock.rules >>> 95-dm-notify.rules >>> 99-systemd.rules >>> >>> So maybe there is some difference here. >>> >>> Sam >>> >>> On Mon, Apr 5, 2021 at 9:31 PM Richard W.M. Jones <rjo...@redhat.com> >>> wrote: >>> >>>> On Mon, Apr 05, 2021 at 05:49:17PM +0300, Sam Eiderman wrote: >>>> > Yes, attached below (it's quite long) >>>> >>>> Thanks - just looking at the lines where the /dev/rhel/swap >>>> device appears or its various synonyms: >>>> >>>> > 2021-03-07 10:58:46 T libguestfs - 0 - appliance - drwxr-xr-x 2 0 0 >>>> 60 Mar 7 10:58 rhel >>>> [...] >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - /dev/mapper: >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - total 0 >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - crw------- 1 0 0 >>>> 10, 236 Mar >>>> > 7 10:58 control >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - lrwxrwxrwx 1 0 0 >>>> 7 Mar >>>> > 7 10:58 rhel-root -> ../dm-2 >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - lrwxrwxrwx 1 0 0 >>>> 7 Mar >>>> > 7 10:58 rhel-swap -> ../dm-1 >>>> >>>> This is fairly early on during appliance boot where the init script is >>>> listing out /dev/ recursively >>>> ( >>>> https://github.com/libguestfs/libguestfs/blob/b18ac489db76a700f2168ae6eb64e9d450613a27/appliance/init#L159 >>>> ). >>>> This is also after we did udevadm settle in the init script. It's >>>> interesting that at this point /dev/mapper/rhel-swap exists correctly, >>>> but /dev/rhel/ is an empty directory. >>>> >>>> That's very much not expected ... >>>> >>>> A bit later in the init script we list out PVs/VGs/LVs and everything >>>> looks normal: >>>> >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - + lvm pvs >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - PV VG >>>> Fmt >>>> > Attr PSize PFree >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - /dev/sda2 rhel >>>> lvm2 >>>> > a-- <15.00g 0 >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - /dev/sdb >>>> vg_myvg lvm2 >>>> > a-- 496.00m 0 >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - + lvm vgs >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - VG #PV #LV >>>> #SN Attr >>>> > VSize VFree >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - rhel 1 2 >>>> 0 wz--n- >>>> > <15.00g 0 >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - vg_myvg 1 1 >>>> 0 wz--n- >>>> > 496.00m 0 >>>> > 2021-03-07 10:58:47 T libguestfs - 0 - appliance - + lvm lvs >>>> > 2021-03-07 10:58:48 T libguestfs - 0 - appliance - LV VG >>>> Attr >>>> > LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert >>>> > 2021-03-07 10:58:48 T libguestfs - 0 - appliance - root rhel >>>> -wi-a----- >>>> > 13.39g >>>> > 2021-03-07 10:58:48 T libguestfs - 0 - appliance - swap rhel >>>> -wi-a----- >>>> > 1.60g >>>> > 2021-03-07 10:58:48 T libguestfs - 0 - appliance - lv_var vg_myvg >>>> -wi-a----- >>>> > 496.00m >>>> >>>> A little bit further on while we're executing the guestfs_inspect_os() >>>> API call, we have this snippet: >>>> >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: lvm 'lvs' >>>> '-o' >>>> > 'vg_name,lv_name' '-S' 'lv_role=public && lv_skip_activation!=yes' >>>> > '--noheadings' '--separator' '/' >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: lvm >>>> returned 0 >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: lvm: >>>> stdout: >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - rhel/root >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - rhel/swap >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - vg_myvg/lv_var >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid >>>> '-c' '/dev/ >>>> > null' '-o' 'value' '-s' 'TYPE' '/dev/rhel/root' >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid >>>> returned 0 >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid: >>>> stdout: >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - xfs >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid >>>> '-c' '/dev/ >>>> > null' '-o' 'value' '-s' 'TYPE' '/dev/rhel/swap' >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid >>>> returned 2 >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid >>>> '-c' '/dev/ >>>> > null' '-o' 'value' '-s' 'TYPE' '/dev/vg_myvg/lv_var' >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid >>>> returned 0 >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - command: blkid: >>>> stdout: >>>> > 2021-03-07 10:58:49 T libguestfs - 0 - appliance - xfs >>>> >>>> If you look closely it's clear that /dev/rhel/root has been created, >>>> /dev/vg_myvg/lv_var has been created (that was also an empty directory >>>> earlier on), but /dev/rhel/swap has *not* been created--notice how the >>>> blkid command exits with code 2. >>>> >>>> And obviously by the time we get down here ... >>>> >>>> > 2021-03-07 10:58:53 T libguestfs - 0 - appliance - rhel/root >>>> > 2021-03-07 10:58:53 T libguestfs - 0 - appliance - rhel/swap >>>> > 2021-03-07 10:58:53 T libguestfs - 0 - appliance - vg_myvg/lv_var >>>> > 2021-03-07 10:58:53 T libguestfs - 0 - appliance - guestfsd: error: >>>> stat: /dev/ >>>> > rhel/swap: No such file or directory >>>> >>>> ... it still doesn't exist. >>>> >>>> We ran a udevadm --debug settle command before this, so if it wasn't >>>> going to be created because of a delayed udev event then I'd expect it >>>> should have done. >>>> >>>> I'm not much closer to understanding why the /dev/VG/LV nodes are >>>> created so much later/delayed than the /dev/mapper/VG-LV nodes. As >>>> far as I can tell they should be created by udev >>>> (/usr/lib/udev/rules.d/11-dm-lvm.rules in Fedora). >>>> >>>> Would suggest enabling udevadm debugging (uncomment #--debug in >>>> appliance/init). >>>> >>>> It would also be good to have some more concrete reproducer: you might >>>> have appliance/init kill PID 1 if /dev/rhel/swap does not exist, then >>>> repeatedly run g.launch() to see if you can make it fail, all the time >>>> while trying to capture the log of the failure with udev debugging >>>> turned on. >>>> >>>> Rich. >>>> >>>> -- >>>> Richard Jones, Virtualization Group, Red Hat >>>> http://people.redhat.com/~rjones >>>> Read my programming and virtualization blog: http://rwmj.wordpress.com >>>> virt-df lists disk usage of guests without needing to install any >>>> software inside the virtual machine. Supports Linux and Windows. >>>> http://people.redhat.com/~rjones/virt-df/ >>>> >>>>
_______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs