On 2018/10/31 下午4:55, Nikolay Borisov wrote:
>
>
> On 30.10.18 г. 12:18 ч., Qu Wenruo wrote:
>> For any recent kernel, there is a chance that btrfs/057 reports false
>> errors.
>>
>> The false error would look like:
>> btrfs/057 4s ... - output mismatch (see
>> /home/adam/xfstests-dev/results//btrfs/057.out.bad)
>> --- tests/btrfs/057.out 2017-08-21 09:25:33.166666666 +0800
>> +++ /home/adam/xfstests-dev/results//btrfs/057.out.bad 2018-10-29
>> 14:07:28.443651293 +0800
>> @@ -1,3 +1,3 @@
>> QA output created by 057
>> 4096 4096
>> -4096 4096
>> +28672 28672
>>
>> This is related to the fact that "btrfs subvolume sync" (or
>> vanilla sync) will not ensure orphan (unlinked but still exist) files to
>> be removed.
>>
>> In fact, for that false error case, if inspecting the fs after umount,
>> its qgroup number is correct and btrfs check won't report qgroup error.
>>
>> To fix the false alerts, just skip any manual qgroup number comparison,
>> and let fsck done after the test case to detect problem.
>>
>> This also elimiate the necessary of using specified mount and mkfs
>> option, allowing us to improve coverage.
>
> Something's fishy about this test! THe description states that "
> Quota rescan stress test, we run fsstress and quota rescan
> concurrently" yet fsstress is not run concurrently to quota. We first
> run fsstress, then trigger rescan with -w. How exactly are rescan and
> fsstress run concurrently ?
Indeed that description is just garbage.
The real objective looks like just fsstress + rescan test.
No concurrency at all from the very beginning.
Not sure what to do with it.
Thanks,
Qu
>
>>
>> Reported-by: Nikolay Borisov <nbori...@suse.com>
>> Signed-off-by: Qu Wenruo <w...@suse.com>
>> Reviewed-by: Filipe Manana <fdman...@suse.com>
>> ---
>> Changelog:
>> v2:
>> Update commit message to show this is a long existing bug.
>> v3:
>> Remove an old comment since now we don't need to specify the leaf
>> size.
>> Added Reviewed-by tags.
>> ---
>> tests/btrfs/057 | 18 ++++--------------
>> tests/btrfs/057.out | 3 +--
>> 2 files changed, 5 insertions(+), 16 deletions(-)
>>
>> diff --git a/tests/btrfs/057 b/tests/btrfs/057
>> index b019f4e1e054..82e3162ebfeb 100755
>> --- a/tests/btrfs/057
>> +++ b/tests/btrfs/057
>> @@ -32,13 +32,9 @@ _require_scratch
>>
>> rm -f $seqres.full
>>
>> -# use small leaf size to get higher btree height.
>> -run_check _scratch_mkfs "-b 1g --nodesize 4096"
>> +run_check _scratch_mkfs "-b 1g"
>>
>> -# inode cache is saved in the FS tree itself for every
>> -# individual FS tree,that affects the sizes reported by qgroup show
>> -# so we need to explicitly turn it off to get consistent values.
>> -_scratch_mount "-o noinode_cache"
>> +_scratch_mount
>>
>> # -w ensures that the only ops are ones which cause write I/O
>> run_check $FSSTRESS_PROG -d $SCRATCH_MNT -w -p 5 -n 1000 \
>> @@ -53,14 +49,8 @@ run_check $FSSTRESS_PROG -d $SCRATCH_MNT/snap1 -w -p 5 -n
>> 1000 \
>> _run_btrfs_util_prog quota enable $SCRATCH_MNT
>> _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
>>
>> -# remove all file/dir other than subvolume
>> -rm -rf $SCRATCH_MNT/snap1/* >& /dev/null
>> -rm -rf $SCRATCH_MNT/p* >& /dev/null
>> -
>> -_run_btrfs_util_prog filesystem sync $SCRATCH_MNT
>> -units=`_btrfs_qgroup_units`
>> -$BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | $SED_PROG -n '/[0-9]/p' \
>> - | $AWK_PROG '{print $2" "$3}'
>> +echo "Silence is golden"
>> +# btrfs check will detect any qgroup number mismatch.
>>
>> status=0
>> exit
>> diff --git a/tests/btrfs/057.out b/tests/btrfs/057.out
>> index 60cb92d0926c..185023c79961 100644
>> --- a/tests/btrfs/057.out
>> +++ b/tests/btrfs/057.out
>> @@ -1,3 +1,2 @@
>> QA output created by 057
>> -4096 4096
>> -4096 4096
>> +Silence is golden
>>