From: Ojaswin Mujoo Date: Wed, 7 Jan 2026 10:37:44 +0000 (+0530) Subject: generic/108: fix test hand upon failure to create LV X-Git-Tag: v2026.01.27~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a4dbdc5486b43294f73c44f62cc355cc3ed2458e;p=xfstests-dev.git generic/108: fix test hand upon failure to create LV In case the lvcreate operation fails, we don't catch the error and proceed as usual. The test then tries to wait for the LV to come up but it never does, causing a hang. To fix this: 1. Add a check to ensure SCSI_DEBUG dev is of required size 2. Additionally, fail if there are errors while creating the LV. Context for completeness: This was noticed when we accidentally used CONFIG_SCSI_DEBUG=y instead of =m, causing it to create an 8MB SCSI debug device. This led to the lvcreate operation to fail with: Insufficient suitable allocatable extents for logical volume lv_108: 68 more required However the test never caught this resulting in a hang. Signed-off-by: Ojaswin Mujoo Reported-by: Disha Goel Tested-by: Disha Goel Reviewed-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Reviewed-by: Zorro Lang Signed-off-by: Zorro Lang --- diff --git a/tests/generic/108 b/tests/generic/108 index 4f86ec94..05d743a9 100755 --- a/tests/generic/108 +++ b/tests/generic/108 @@ -50,6 +50,11 @@ SCSI_DEBUG_DEV=`_get_scsi_debug_dev ${physical:-512} ${logical:-512} 0 $size` test -b "$SCSI_DEBUG_DEV" || _notrun "Failed to initialize scsi debug device" echo "SCSI debug device $SCSI_DEBUG_DEV" >>$seqres.full +got_size_kb=$(_get_device_size $SCSI_DEBUG_DEV) + +[[ $got_size_kb -lt $((size * 1024)) ]] && + _notrun "Need SCSI debug device of size $(( size * 1024 )) KB. Got $got_size_kb KB" + # create striped volume with 4MB stripe size # # lvm has a hardcoded list of valid devices and fails with @@ -60,7 +65,7 @@ $LVM_PROG vgcreate -f $vgname $SCSI_DEBUG_DEV $SCRATCH_DEV >>$seqres.full 2>&1 # We use yes pipe instead of 'lvcreate --yes' because old version of lvm # (like 2.02.95 in RHEL6) don't support --yes option yes | $LVM_PROG lvcreate -i 2 -I 4m -L ${lvsize}m -n $lvname $vgname \ - >>$seqres.full 2>&1 + >>$seqres.full 2>&1 || _fail "Failed to create LVM lv" _udev_wait /dev/mapper/$vgname-$lvname # _mkfs_dev exits the test on failure, this makes sure test lv is created by