I think this is exactly the same issue (dmsetup's output is lost by udev): https://github.com/systemd/systemd/issues/18190
On Wed, Apr 7, 2021 at 8:59 PM Sam Eiderman <sam...@google.com> wrote: > 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