diff options
Diffstat (limited to 'test/shell/duplicate-pvs-multipath.sh')
-rw-r--r-- | test/shell/duplicate-pvs-multipath.sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/shell/duplicate-pvs-multipath.sh b/test/shell/duplicate-pvs-multipath.sh new file mode 100644 index 0000000..bc98d2d --- /dev/null +++ b/test/shell/duplicate-pvs-multipath.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +# Copyright (C) 2021 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions +# of the GNU General Public License v.2. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +test_description='duplicate pv detection of mpath components using wwid' + +SKIP_WITH_LVMPOLLD=1 +SKIP_WITH_LVMLOCKD=1 + +. lib/inittest + +# FIXME: skip until mpath/scsi_debug cleanup works after a failure +skip + +modprobe --dry-run scsi_debug || skip +multipath -l || skip +multipath -l | grep scsi_debug && skip + +# FIXME: setting multipath_component_detection=0 now also disables +# the wwid-based mpath component detection, so this test will need +# to find another way to disable only the filter-mpath code (using +# sysfs and multipath/wwids) while keeping the code enabled that +# eliminates duplicates based on their matching wwids which this +# tries to test. + +# Prevent wwids from being used for filtering. +aux lvmconf 'devices/multipath_wwids_file = "/dev/null"' +# Need to use /dev/mapper/mpath +aux lvmconf 'devices/dir = "/dev"' +aux lvmconf 'devices/scan = "/dev"' +# Could set filter to $MP and the component /dev/sd devs +aux lvmconf "devices/filter = [ \"a|.*|\" ]" +aux lvmconf "devices/global_filter = [ \"a|.*|\" ]" + +modprobe scsi_debug dev_size_mb=100 num_tgts=1 vpd_use_hostno=0 add_host=4 delay=20 max_luns=2 no_lun_0=1 +sleep 2 + +multipath -r +sleep 2 + +MPB=$(multipath -l | grep scsi_debug | cut -f1 -d ' ') +echo $MPB +MP=/dev/mapper/$MPB +echo $MP + +pvcreate $MP +vgcreate $vg1 $MP +lvcreate -l1 $vg1 +vgchange -an $vg1 + +pvs |tee out +grep $MP out +for i in $(grep -H scsi_debug /sys/block/sd*/device/model | cut -f4 -d /); do + not grep /dev/$i out; +done + +vgchange -an $vg1 +vgremove -y $vg1 + +sleep 2 +multipath -f $MP +sleep 1 +rmmod scsi_debug |