From 0ee8351e4d564724aa68a2b8d03bc53e281e7fc9 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Mon, 25 Jul 2022 17:19:01 +0200 Subject: [PATCH] ceph-volume: filter out non-existing devices [1] has broken teuthology tests. ``` [root@smithi097 /]# ls -l /sys/block/ total 0 lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-0 -> ../devices/virtual/block/dm-0 lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-1 -> ../devices/virtual/block/dm-1 lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-2 -> ../devices/virtual/block/dm-2 lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-3 -> ../devices/virtual/block/dm-3 lrwxrwxrwx 1 root root 0 Jul 25 14:15 dm-4 -> ../devices/virtual/block/dm-4 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop0 -> ../devices/virtual/block/loop0 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop1 -> ../devices/virtual/block/loop1 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop2 -> ../devices/virtual/block/loop2 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop3 -> ../devices/virtual/block/loop3 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop4 -> ../devices/virtual/block/loop4 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop5 -> ../devices/virtual/block/loop5 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop6 -> ../devices/virtual/block/loop6 lrwxrwxrwx 1 root root 0 Jul 25 14:13 loop7 -> ../devices/virtual/block/loop7 lrwxrwxrwx 1 root root 0 Jul 25 14:12 nvme0n1 -> ../devices/pci0000:00/0000:00:02.0/0000:02:00.0/nvme/nvme0/nvme0n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme1c1n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme1/nvme1c1n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme1n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys1/nvme1n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme2c2n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme2/nvme2c2n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme2n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys2/nvme2n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme3c3n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme3/nvme3c3n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme3n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys3/nvme3n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme4c4n1 -> ../devices/virtual/nvme-fabrics/ctl/nvme4/nvme4c4n1 lrwxrwxrwx 1 root root 0 Jul 25 14:18 nvme4n1 -> ../devices/virtual/nvme-subsystem/nvme-subsys4/nvme4n1 lrwxrwxrwx 1 root root 0 Jul 25 14:12 sda -> ../devices/pci0000:00/0000:00:1f.2/ata5/host4/target4:0:0/4:0:0:0/block/sda [root@smithi097 /]# ``` devices like `nvme1c1n1` exist in `/sys/block` but aren't present in `/dev` ``` [root@smithi097 /]# ls -l /dev/nvme* crw------- 1 root root 10, 122 Jul 25 14:16 /dev/nvme-fabrics crw------- 1 root root 240, 0 Jul 25 14:12 /dev/nvme0 brw-rw---- 1 root disk 259, 0 Jul 25 14:15 /dev/nvme0n1 crw------- 1 root root 240, 1 Jul 25 14:16 /dev/nvme1 brw-rw---- 1 root disk 259, 2 Jul 25 15:24 /dev/nvme1n1 crw------- 1 root root 240, 2 Jul 25 14:16 /dev/nvme2 brw-rw---- 1 root disk 259, 4 Jul 25 15:24 /dev/nvme2n1 crw------- 1 root root 240, 3 Jul 25 14:16 /dev/nvme3 brw-rw---- 1 root disk 259, 6 Jul 25 15:24 /dev/nvme3n1 crw------- 1 root root 240, 4 Jul 25 14:16 /dev/nvme4 brw-rw---- 1 root disk 259, 8 Jul 25 15:24 /dev/nvme4n1 [root@smithi097 /]# ``` If a device isn't actually present in `/dev`, `get_block_devs_sysfs()` shouldn't return it. [1] https://github.com/ceph/ceph/commit/c7f017b21ade3762ba5b7b9688bed72c6b6 Signed-off-by: Guillaume Abrioux --- src/ceph-volume/ceph_volume/util/disk.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ceph-volume/ceph_volume/util/disk.py b/src/ceph-volume/ceph_volume/util/disk.py index 0a11d217907..88c43b429aa 100644 --- a/src/ceph-volume/ceph_volume/util/disk.py +++ b/src/ceph-volume/ceph_volume/util/disk.py @@ -774,6 +774,8 @@ def get_block_devs_sysfs(_sys_block_path='/sys/block', _sys_dev_block_path='/sys dev_names = os.listdir(_sys_block_path) for dev in dev_names: name = kname = os.path.join("/dev", dev) + if not os.path.exists(name): + continue type_ = 'disk' if get_file_contents(os.path.join(_sys_block_path, dev, 'removable')) == "1": continue -- 2.39.5