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. 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