← Back to team overview

curtin-dev team mailing list archive

[Merge] ~raharper/curtin:fix/lvm-vgscan-no-mknodes into curtin:master

 

Ryan Harper has proposed merging ~raharper/curtin:fix/lvm-vgscan-no-mknodes into curtin:master.

Commit message:
lvm: don't use vgscan --mknodes

vgscan --mknodes has a bug which creates block device nodes for any
entry in dmsetup table if it doesn't exist yet. This breaks the
assumption that /dev/mapper entries are symlinks created by udev.
Until upstream RHBZ: #1828617 is resolved do not use --mknodes.


Requested reviews:
  curtin developers (curtin-dev)

For more details, see:
https://code.launchpad.net/~raharper/curtin/+git/curtin/+merge/383141
-- 
Your team curtin developers is requested to review the proposed merge of ~raharper/curtin:fix/lvm-vgscan-no-mknodes into curtin:master.
diff --git a/curtin/block/lvm.py b/curtin/block/lvm.py
index 1edc587..da29c7b 100644
--- a/curtin/block/lvm.py
+++ b/curtin/block/lvm.py
@@ -129,7 +129,7 @@ def lvm_scan(activate=True, multipath=False):
         # only operate on mp devices
         mponly = 'devices{ filter = [ "a|/dev/mapper/mpath.*|", "r|.*|" ] }'
 
-    for cmd in [['pvscan'], ['vgscan', '--mknodes']]:
+    for cmd in [['pvscan'], ['vgscan']]:
         if release != 'precise' and lvmetad_running():
             cmd.append('--cache')
         if multipath:
diff --git a/examples/tests/multipath-lvm-part-wipe.yaml b/examples/tests/multipath-lvm-part-wipe.yaml
index bfe39ea..0b22aa3 100644
--- a/examples/tests/multipath-lvm-part-wipe.yaml
+++ b/examples/tests/multipath-lvm-part-wipe.yaml
@@ -29,8 +29,8 @@ bucket:
     udevadm settle
     ls -al /dev/disk/by-id
     vgcreate --force --zero=y --yes root_vg /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_disk-a-part3
-    pvscan --cache
-    vgscan --verbose --mknodes --cache
+    pvscan --verbose
+    vgscan --verbose
     udevadm settle
     for x in $(seq 1 10); do
         if vgs root_vg; then
diff --git a/examples/tests/multipath-lvm.yaml b/examples/tests/multipath-lvm.yaml
index 68c3271..fd5ea07 100644
--- a/examples/tests/multipath-lvm.yaml
+++ b/examples/tests/multipath-lvm.yaml
@@ -28,8 +28,8 @@ bucket:
     udevadm settle
     ls -al /dev/disk/by-id
     vgcreate --force --zero=y --yes root_vg /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_disk-a-part2
-    pvscan --cache
-    vgscan --verbose --mknodes --cache
+    pvscan --verbose
+    vgscan --verbose
     udevadm settle
     for x in $(seq 1 10); do
         if vgs root_vg; then
diff --git a/examples/tests/preserve-lvm.yaml b/examples/tests/preserve-lvm.yaml
index 046d6b4..a939759 100644
--- a/examples/tests/preserve-lvm.yaml
+++ b/examples/tests/preserve-lvm.yaml
@@ -10,8 +10,8 @@ bucket:
     udevadm settle
     ls -al /dev/disk/by-id
     vgcreate --force --zero=y --yes root_vg /dev/disk/by-id/virtio-disk-a-part2
-    pvscan --cache
-    vgscan --mknodes --cache
+    pvscan --verbose
+    vgscan --verbose
     lvcreate root_vg --name lv1_root --zero=y --wipesignatures=y \
         --size 3758096384B
     udevadm settle
diff --git a/examples/tests/preserve-partition-wipe-vg-simple.yaml b/examples/tests/preserve-partition-wipe-vg-simple.yaml
index 662f34f..e1f0b9e 100644
--- a/examples/tests/preserve-partition-wipe-vg-simple.yaml
+++ b/examples/tests/preserve-partition-wipe-vg-simple.yaml
@@ -10,8 +10,8 @@ bucket:
     udevadm settle
     ls -al /dev/disk/by-id
     vgcreate --force --zero=y --yes root_vg /dev/disk/by-id/virtio-disk-a-part2
-    pvscan --cache
-    vgscan --mknodes --cache
+    pvscan --verbose
+    vgscan --verbose
     vgs
     lvcreate root_vg --name lv1_root --zero=y --wipesignatures=y \
         --size 2G
diff --git a/examples/tests/preserve-partition-wipe-vg.yaml b/examples/tests/preserve-partition-wipe-vg.yaml
index cef9678..97686e1 100644
--- a/examples/tests/preserve-partition-wipe-vg.yaml
+++ b/examples/tests/preserve-partition-wipe-vg.yaml
@@ -15,8 +15,8 @@ bucket:
     udevadm settle
     ls -al /dev/disk/by-id
     vgcreate --force --zero=y --yes vg8 /dev/disk/by-id/virtio-disk-b-part1
-    pvscan --cache
-    vgscan --mknodes --cache
+    pvscan --verbose
+    vgscan --verbose
     udevadm settle
     ls -al /dev/disk/by-id
     mkfs.ext4 /dev/disk/by-id/virtio-disk-a-part3
diff --git a/examples/tests/reuse-lvm-member-partition.yaml b/examples/tests/reuse-lvm-member-partition.yaml
index d2f73ba..fd8f602 100644
--- a/examples/tests/reuse-lvm-member-partition.yaml
+++ b/examples/tests/reuse-lvm-member-partition.yaml
@@ -25,8 +25,8 @@ bucket:
         mkpart primary 2GiB 9GiB
     udevadm settle
     vgcreate --verbose --force --zero=y --yes ${VG} ${SDA}-part2 ${SDB}-part1
-    pvscan --verbose --cache
-    vgscan --verbose --mknodes
+    pvscan --verbose
+    vgscan --verbose
     # create a striped lv
     lvcreate ${VG} --extents 100%FREE --stripes 2 --stripesize 256 \
         --name ${LV}
diff --git a/tests/unittests/test_block_lvm.py b/tests/unittests/test_block_lvm.py
index 842511c..ff58b30 100644
--- a/tests/unittests/test_block_lvm.py
+++ b/tests/unittests/test_block_lvm.py
@@ -76,7 +76,7 @@ class TestBlockLvm(CiTestCase):
     @mock.patch('curtin.block.lvm.distro')
     def test_lvm_scan(self, mock_distro, mock_util, mock_lvmetad):
         """check that lvm_scan formats commands correctly for each release"""
-        cmds = [['pvscan'], ['vgscan', '--mknodes']]
+        cmds = [['pvscan'], ['vgscan']]
         for (count, (codename, lvmetad_status, use_cache)) in enumerate(
                 [('precise', False, False),
                  ('trusty', False, False),
@@ -100,7 +100,7 @@ class TestBlockLvm(CiTestCase):
     @mock.patch('curtin.block.lvm.distro')
     def test_lvm_scan_multipath(self, mock_distro, mock_util, mock_lvmetad):
         """check that lvm_scan formats commands correctly for multipath."""
-        cmds = [['pvscan'], ['vgscan', '--mknodes']]
+        cmds = [['pvscan'], ['vgscan']]
         mock_distro.lsb_release.return_value = {'codename': 'focal'}
         mock_lvmetad.return_value = False
         lvm.lvm_scan(multipath=True)

Follow ups