← Back to team overview

curtin-dev team mailing list archive

[Merge] ~raharper/curtin:fix/multipath-lvm-dirty-setup into curtin:master

 

Ryan Harper has proposed merging ~raharper/curtin:fix/multipath-lvm-dirty-setup into curtin:master.

Commit message:
vmtests/multipath-lvm: dont assume device-mapper block names

- Add comments in the early_command code to document what it is doing
- Use the /device/mapper/mpatha symlink to determine the correct
  device-mapper device name when operating on it
- Add additional commands to capture more information for future
  debugging issues with these tests.

LP: #1898758

Requested reviews:
  curtin developers (curtin-dev)
Related bugs:
  Bug #1898758 in curtin: "vmtests.test_multipath_lvm.Centos70TestMultipathLvm failing in curtin-vmtest-devel-amd64"
  https://bugs.launchpad.net/curtin/+bug/1898758

For more details, see:
https://code.launchpad.net/~raharper/curtin/+git/curtin/+merge/391934
-- 
Your team curtin developers is requested to review the proposed merge of ~raharper/curtin:fix/multipath-lvm-dirty-setup into curtin:master.
diff --git a/examples/tests/multipath-lvm-part-wipe.yaml b/examples/tests/multipath-lvm-part-wipe.yaml
index 0b22aa3..cb18a08 100644
--- a/examples/tests/multipath-lvm-part-wipe.yaml
+++ b/examples/tests/multipath-lvm-part-wipe.yaml
@@ -14,11 +14,16 @@ bucket:
         udevadm settle
         multipath -v3 -R3 -r
     fi
+    # disassemble multipath disks
     multipath -ll
-    dmsetup remove --force --retry /dev/dm-0
+    ls -al /dev/mapper/
+    mpatha_dev=$(realpath /dev/mapper/mpatha)
+    dmsetup remove --force --retry ${mpatha_dev}
     dmsetup ls
     multipath -v3 -R3 -f mpatha
     udevadm settle
+    ls -al /dev/mapper/
+    # create an LVM vg and lv with one of the multipath members
     parted /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_disk-a --script -- \
         mklabel gpt              \
         mkpart primary 1MiB 2MiB \
@@ -42,19 +47,24 @@ bucket:
         --size 2684354560B
     udevadm settle
     mkfs.ext4 /dev/root_vg/lv1_root
+    ls -al /dev/mapper/
     # stop lvm bits
     for vg in `pvdisplay -C --separator = -o vg_name --noheadings`; do
         vgchange -an $vg ||:
     done
     command -v systemctl && systemctl mask lvm2-pvscan\@.service
     rm -rf /etc/lvm/archive /etc/lvm/backup  /run/lvm/*
+    # reload multipath mapping
     multipath -r
     udevadm settle
     dmsetup ls
     multipath -ll
     ls -al /dev/mapper/
     sleep 5
-    ls -al /sys/class/block/dm-0/holders/
+    mpatha_block_name=$(basename `realpath /dev/mapper/mpatha`)
+    echo "mpatha dm blockname: [${mpatha_block_name}]"
+    ls -al /sys/class/block/${mpatha_block_name}/holders/
+    # print the shutdown plan
     /curtin/bin/curtin \
         -v --config /curtin/config/multipath-lvm-part-wipe.yaml \
         clear-holders --shutdown-plan
diff --git a/examples/tests/multipath-lvm.yaml b/examples/tests/multipath-lvm.yaml
index fd5ea07..5ec8687 100644
--- a/examples/tests/multipath-lvm.yaml
+++ b/examples/tests/multipath-lvm.yaml
@@ -14,11 +14,16 @@ bucket:
         udevadm settle
         multipath -v3 -R3 -r
     fi
+    # disassemble multipath disks
     multipath -ll
-    dmsetup remove --force --retry /dev/dm-0
+    ls -al /dev/mapper/
+    mpatha_dev=$(realpath /dev/mapper/mpatha)
+    dmsetup remove --force --retry ${mpatha_dev}
     dmsetup ls
     multipath -v3 -R3 -f mpatha
     udevadm settle
+    ls -al /dev/mapper/
+    # create an LVM vg and lv with one of the multipath members
     parted /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_disk-a --script -- \
         mklabel gpt              \
         mkpart primary 1MiB 2MiB \
@@ -41,19 +46,24 @@ bucket:
         --size 3758096384B
     udevadm settle
     mkfs.ext4 /dev/root_vg/lv1_root
+    ls -al /dev/mapper/
     # stop lvm bits
     for vg in `pvdisplay -C --separator = -o vg_name --noheadings`; do
         vgchange -an $vg ||:
     done
     command -v systemctl && systemctl mask lvm2-pvscan\@.service
     rm -rf /etc/lvm/archive /etc/lvm/backup  /run/lvm/*
+    ls -al /dev/mapper/
+    # reload multipath mapping
     multipath -r
     udevadm settle
     dmsetup ls
     multipath -ll
     ls -al /dev/mapper/
     sleep 5
-    ls -al /sys/class/block/dm-0/holders/
+    mpatha_block_name=$(basename `realpath /dev/mapper/mpatha`)
+    echo "mpatha dm blockname: [${mpatha_block_name}]"
+    ls -al /sys/class/block/${mpatha_block_name}/holders/
 
 
 # Create a LVM now to test curtin's reuse of existing LVMs

Follow ups