fstests.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Filipe Manana <fdmanana@gmail.com>
To: Anand Jain <anand.jain@oracle.com>
Cc: fstests <fstests@vger.kernel.org>,
	linux-btrfs <linux-btrfs@vger.kernel.org>,
	Josef Bacik <josef@toxicpanda.com>,
	Eryu Guan <guaneryu@gmail.com>,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>
Subject: Re: [PATCH] fstests: delete btrfs/064 it makes no sense
Date: Tue, 29 Sep 2020 16:55:55 +0100	[thread overview]
Message-ID: <CAL3q7H7QLe6EpK_g1S6MVhOPKaEsaYY9MeAHexdsEO=nz_qubQ@mail.gmail.com> (raw)
In-Reply-To: <f36fdfad33395cbf99520479b162590935f3cfd1.1601394562.git.anand.jain@oracle.com>

On Tue, Sep 29, 2020 at 4:50 PM Anand Jain <anand.jain@oracle.com> 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@toxicpanda.com>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
>  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.”

  reply	other threads:[~2020-09-29 15:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-29 15:50 [PATCH] fstests: delete btrfs/064 it makes no sense Anand Jain
2020-09-29 15:55 ` Filipe Manana [this message]
2020-09-29 16:02   ` Josef Bacik
2020-09-29 16:13     ` Filipe Manana
2020-09-29 17:26       ` Josef Bacik
2020-09-30  4:14         ` Anand Jain
2020-09-30  9:16           ` Filipe Manana
2020-09-30 10:01             ` Anand Jain
2020-09-30  4:44 ` [PATCH v2] fstests: btrfs/064 add a comment to the test case header Anand Jain
2020-09-30 12:42   ` Josef Bacik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAL3q7H7QLe6EpK_g1S6MVhOPKaEsaYY9MeAHexdsEO=nz_qubQ@mail.gmail.com' \
    --to=fdmanana@gmail.com \
    --cc=anand.jain@oracle.com \
    --cc=fstests@vger.kernel.org \
    --cc=guaneryu@gmail.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).