diff --git a/test/lib/inittest.sh b/test/lib/inittest.sh index 6b4bcb348..98a916ca6 100644 --- a/test/lib/inittest.sh +++ b/test/lib/inittest.sh @@ -31,6 +31,7 @@ LVM_TEST_BACKING_DEVICE=${LVM_TEST_BACKING_DEVICE-} LVM_TEST_DEVDIR=${LVM_TEST_DEVDIR-} LVM_TEST_NODEBUG=${LVM_TEST_NODEBUG-} LVM_TEST_LVM1=${LVM_TEST_LVM1-} +LVM_TEST_FAILURE=${LVM_TEST_FAILURE-} # TODO: LVM_TEST_SHARED SHARED=${SHARED-} @@ -63,7 +64,7 @@ test -n "$SKIP_WITH_LVMLOCKD" && test -n "$LVM_TEST_LVMLOCKD" && initskip unset CDPATH -export LVM_TEST_BACKING_DEVICE LVM_TEST_DEVDIR LVM_TEST_NODEBUG +export LVM_TEST_BACKING_DEVICE LVM_TEST_DEVDIR LVM_TEST_NODEBUG LVM_TEST_FAILURE export LVM_TEST_LVMLOCKD LVM_TEST_LVMLOCKD_TEST export LVM_TEST_LVMPOLLD LVM_TEST_LOCK_TYPE_DLM LVM_TEST_LOCK_TYPE_SANLOCK LVM_TEST_LOCK_TYPE_IDM export LVM_TEST_DEVICES_FILE diff --git a/test/shell/lvmlockd_failure.sh b/test/shell/lvmlockd_failure.sh new file mode 100644 index 000000000..e0fccfb83 --- /dev/null +++ b/test/shell/lvmlockd_failure.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +# Copyright (C) 2020~2021 Seagate, 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 + +SKIP_WITH_LVMPOLLD=1 + +. lib/inittest + +[ -z "$LVM_TEST_FAILURE" ] && skip; + +aux prepare_vg 3 + +# Create new logic volume +lvcreate -a ey --zero n -l 1 -n $lv1 $vg + +# Emulate lvmlockd abnormally exiting +killall -9 lvmlockd + +systemctl start lvm2-lvmlockd + +vgchange --lock-start $vg + +lvchange -a n $vg/$lv1 +lvchange -a sy $vg/$lv1 + +lvcreate -a ey --zero n -l 1 -n $lv2 $vg +lvchange -a n $vg/$lv2 + +vgremove -ff $vg