On 09/15/2014 11:17 PM, Bernhard Voelker wrote:
> * tests/du/2g.sh: Similar to the fix for a dd test (see commit
> v8.22-65-g7c03fe2), avoid speculative preallocation by creating
> the 'big' file in one go instead of appending to it in the loop.
> Remove debugging statements as the output with 'set -x' is
> sufficient nowadays.
> ---
>  tests/du/2g.sh | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
> 
> diff --git a/tests/du/2g.sh b/tests/du/2g.sh
> index f766d4d..d7cc987 100755
> --- a/tests/du/2g.sh
> +++ b/tests/du/2g.sh
> @@ -43,15 +43,14 @@ test $min_kb -lt $free_kb ||
>  
>  big=big
>  rm -f $big
> -test -t 1 || printf 'creating a 2GB file...\n'
> -for i in $(seq 100); do
> -  # Note: 2147483648 == 2^31. Print floor(2^31/100) per iteration.
> -  printf %21474836s x >> $big || fail=1
> -  # On the final iteration, append the remaining 48 bytes.
> -  test $i = 100 && { printf %48s x >> $big || fail=1; }
> -  test -t 1 && printf 'creating a 2GB file: %d%% complete\r' $i
> -done
> -echo
> +{
> +  for i in $(seq 100); do
> +    # Note: 2147483648 == 2^31. Print floor(2^31/100) per iteration.
> +    printf %21474836s x || fail=1
> +  done
> +  # After the final iteration, append the remaining 48 bytes.
> +  printf %48s x || fail=1
> +} > $big || fail=1
>  
>  du -k $big > out1 || fail=1
>  rm -f $big
> 

Thanks for the fix.

It's a bit surprising that (I presume) this allocated 3G.
That's a large overallocation, and also the allocation issue
is mainly so with holes.

What was the actual allocation reported by du?

thanks,
Pádraig.

Reply via email to