Re: [PATCH RFC] fstests: generic/077: fix populate fs use _fill_fs()

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




On 12.04.19 г. 10:15 ч., Qu Wenruo wrote:
> 
> 
> On 2019/4/12 下午1:24, Anand Jain wrote:
>> Test case generic/077 uses files under /lib or /usr to fill SCRATCH_MNT.
>> If /usr or /lib is below 256mb then test fails to run, or if these dirs
>> are too large it takes a long time for the cp to finish. On my machine
>> it takes 645sec.
> 
> Wait for a minute, ths fs is only 256M sized, if it takes you over 10
> minutes, there must be something else wrong.

I've had the same issue, the problem is that once the fs is full cp will
continue happily trying to copy stuff and will just be failing with ENOSPC

> 
>>
>> This patch propose to use the common/populate function _fill_fs() to
>> write files into the target directory instead. However I am not too
>> sure about the motivation of this test case in the first place, and
>> why does it wanted to cp /usr or /lib,
> 
> To my eyes, it's using /usr or /lib just for it's mostly full/contains a
> lot of files for most systems.
> 
>> and why fs should become full?
> 
> Maybe to hit certain ENOSPC corner case for ACL/xattr, just my guess.

nod, I've used that test to test certain patches (latest this test was
useful is when testing Anad's xattr/acl patches)

> 
>> Any idea? Thanks.
> 
> Use populate_fs is definitely the right move.
> 
> However I have some concern below.
> 
> [snip]
>>  echo "*** set default ACL"
>>  setfacl -R -dm u:fsgqa:rwx,g::rwx,o::r-x,m::rwx $SCRATCH_MNT/subdir
>>  
>> -echo "*** populate filesystem, pass #1" | tee -a $seqres.full
>> -cp -rf $filler $SCRATCH_MNT/subdir >$seqres.full 2>&1
>> -
>> -echo "*** populate filesystem, pass #2" | tee -a $seqres.full
>> -cp -rf $filler $SCRATCH_MNT/subdir >$seqres.full 2>&1
>> +blksz="$(_get_block_size $SCRATCH_MNT/subdir)"
>> +echo "*** populate filesystem" | tee -a $seqres.full
>> +echo "*** fill_fs $fs_size $SCRATCH_MNT/subdir $blksz 0" >> $seqres.full
>> +_fill_fs $fs_size $SCRATCH_MNT/subdir $blksz 0 >> $seqres.full 2>&1
> 
> Unlike the original behavior, which do 2 passes and the 2nd pass will
> overwrite previous files.
> 
> While after your modification, it's no longer the case.
> 
> At least we should try to replay the 1st run to mimic the original behavior.

Looking at the test shouldn't the "set default acl" be done after the fs
is completely full?

> 
> Thanks,
> Qu
> 
>>  
>>  _check_scratch_fs
>>  
>> diff --git a/tests/generic/077.out b/tests/generic/077.out
>> index eae7226ab29c..9c143c902a2c 100644
>> --- a/tests/generic/077.out
>> +++ b/tests/generic/077.out
>> @@ -1,7 +1,6 @@
>>  QA output created by 077
>>  *** create filesystem
>>  *** set default ACL
>> -*** populate filesystem, pass #1
>> -*** populate filesystem, pass #2
>> +*** populate filesystem
>>  *** all done
>>  *** unmount
>>
> 



[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