Re: [PATCH] fstests: delete btrfs/064 it makes no sense

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Tue, Sep 29, 2020 at 4:50 PM Anand Jain <anand.jain@xxxxxxxxxx> wrote:
>
> btrfs/064 aimed to test balance and replace concurrency while the stress
> test is running in the background.
>
> However, as the balance and the replace operation are mutually
> exclusive, so they can never run concurrently.

And it's good to have a test that verifies that attempting to run them
concurrently doesn't cause any problems, like crashes, memory leaks or
some sort of filesystem corruption.

For example btrfs/187, which I wrote sometime ago, tests that running
send, balance and deduplication in parallel doesn't result in crashes,
since in the past they were allowed to run concurrently.

I see no point in removing the test, it's useful.

Thanks.

>
> So long this test case is showed successful because the btrfs replace's
> return error was captured only into seqfull.out.
>
>  ERROR: ioctl(DEV_REPLACE_START) '/mnt/scratch': add/delete/balance/replace/resize operation in progress
>
> Reported-by: Josef Bacik <josef@xxxxxxxxxxxxxx>
> Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
> ---
>  tests/btrfs/064     | 105 --------------------------------------------
>  tests/btrfs/064.out |   2 -
>  2 files changed, 107 deletions(-)
>  delete mode 100755 tests/btrfs/064
>  delete mode 100644 tests/btrfs/064.out
>
> diff --git a/tests/btrfs/064 b/tests/btrfs/064
> deleted file mode 100755
> index 683a69f113bf..000000000000
> --- a/tests/btrfs/064
> +++ /dev/null
> @@ -1,105 +0,0 @@
> -#! /bin/bash
> -# SPDX-License-Identifier: GPL-2.0
> -# Copyright (C) 2014 Red Hat Inc. All rights reserved.
> -#
> -# FSQA Test No. btrfs/064
> -#
> -# Run btrfs balance and replace operations simultaneously with fsstress
> -# running in background.
> -#
> -seq=`basename $0`
> -seqres=$RESULT_DIR/$seq
> -echo "QA output created by $seq"
> -
> -here=`pwd`
> -tmp=/tmp/$$
> -status=1
> -trap "_cleanup; exit \$status" 0 1 2 3 15
> -
> -_cleanup()
> -{
> -       cd /
> -       rm -f $tmp.*
> -}
> -
> -# get standard environment, filters and checks
> -. ./common/rc
> -. ./common/filter
> -
> -# real QA test starts here
> -_supported_fs btrfs
> -# we check scratch dev after each loop
> -_require_scratch_nocheck
> -_require_scratch_dev_pool 5
> -_require_scratch_dev_pool_equal_size
> -_btrfs_get_profile_configs replace
> -
> -rm -f $seqres.full
> -
> -run_test()
> -{
> -       local mkfs_opts=$1
> -       local saved_scratch_dev_pool=$SCRATCH_DEV_POOL
> -
> -       echo "Test $mkfs_opts" >>$seqres.full
> -
> -       # remove the last device from the SCRATCH_DEV_POOL list so
> -       # _scratch_pool_mkfs won't use all devices in pool
> -       local last_dev="`echo $SCRATCH_DEV_POOL | $AWK_PROG '{print $NF}'`"
> -       SCRATCH_DEV_POOL=`echo $SCRATCH_DEV_POOL | sed -e "s# *$last_dev *##"`
> -       _scratch_pool_mkfs $mkfs_opts >>$seqres.full 2>&1
> -       # make sure we created btrfs with desired options
> -       if [ $? -ne 0 ]; then
> -               echo "mkfs $mkfs_opts failed"
> -               SCRATCH_DEV_POOL=$saved_scratch_dev_pool
> -               return
> -       fi
> -       _scratch_mount >>$seqres.full 2>&1
> -       SCRATCH_DEV_POOL=$saved_scratch_dev_pool
> -
> -       args=`_scale_fsstress_args -p 20 -n 100 $FSSTRESS_AVOID -d $SCRATCH_MNT/stressdir`
> -       echo "Run fsstress $args" >>$seqres.full
> -       $FSSTRESS_PROG $args >/dev/null 2>&1 &
> -       fsstress_pid=$!
> -
> -       echo -n "Start balance worker: " >>$seqres.full
> -       _btrfs_stress_balance $SCRATCH_MNT >/dev/null 2>&1 &
> -       balance_pid=$!
> -       echo "$balance_pid" >>$seqres.full
> -
> -       echo -n "Start replace worker: " >>$seqres.full
> -       _btrfs_stress_replace $SCRATCH_MNT >>$seqres.full 2>&1 &
> -       replace_pid=$!
> -       echo "$replace_pid" >>$seqres.full
> -
> -       echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
> -       wait $fsstress_pid
> -       kill $balance_pid $replace_pid
> -       wait
> -       # wait for the balance and replace operations to finish
> -       while ps aux | grep "balance start" | grep -qv grep; do
> -               sleep 1
> -       done
> -       while ps aux | grep "replace start" | grep -qv grep; do
> -               sleep 1
> -       done
> -
> -       echo "Scrub the filesystem" >>$seqres.full
> -       $BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> -       if [ $? -ne 0 ]; then
> -               echo "Scrub find errors in \"$mkfs_opts\" test" | tee -a $seqres.full
> -       fi
> -
> -       _scratch_unmount
> -       # we called _require_scratch_nocheck instead of _require_scratch
> -       # do check after test for each profile config
> -       _check_scratch_fs
> -}
> -
> -echo "Silence is golden"
> -for t in "${_btrfs_profile_configs[@]}"; do
> -       run_test "$t"
> -done
> -
> -status=0
> -exit
> diff --git a/tests/btrfs/064.out b/tests/btrfs/064.out
> deleted file mode 100644
> index d90765460090..000000000000
> --- a/tests/btrfs/064.out
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -QA output created by 064
> -Silence is golden
> --
> 2.25.1
>


-- 
Filipe David Manana,

“Whether you think you can, or you think you can't — you're right.”




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux