diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/bugs/shard/bug-1568521-EEXIST.t | 28 | ||||
| -rw-r--r-- | tests/bugs/shard/bug-1568521.t | 53 | ||||
| -rw-r--r-- | tests/bugs/shard/bug-shard-discard.t | 19 | ||||
| -rw-r--r-- | tests/bugs/shard/shard-inode-refcount-test.t | 5 | ||||
| -rw-r--r-- | tests/bugs/shard/unlinks-and-renames.t | 123 | 
5 files changed, 127 insertions, 101 deletions
diff --git a/tests/bugs/shard/bug-1568521-EEXIST.t b/tests/bugs/shard/bug-1568521-EEXIST.t index e4c3d41098c..2f9f165aa63 100644 --- a/tests/bugs/shard/bug-1568521-EEXIST.t +++ b/tests/bugs/shard/bug-1568521-EEXIST.t @@ -5,6 +5,12 @@  cleanup +function get_file_count { +    ls $1* | wc -l +} + +FILE_COUNT_TIME=5 +  TEST glusterd  TEST pidof glusterd  TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} @@ -41,10 +47,13 @@ TEST setfattr -n trusted.glusterfs.shard.file-size -v 0x000000000050000000000000  sleep 2  TEST unlink $M0/dir/file -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_file -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_file -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_file -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_file +TEST ! stat $B0/${V0}0/dir/file +TEST ! stat $B0/${V0}1/dir/file + +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_file +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_file +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/$gfid_file +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/$gfid_file  ##############################  ### Repeat test for rename ### @@ -71,9 +80,12 @@ TEST setfattr -n trusted.glusterfs.shard.file-size -v 0x000000000050000000000000  sleep 2  TEST mv -f $M0/src $M0/dir/dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_dst +TEST ! stat $B0/${V0}0/src +TEST ! stat $B0/${V0}1/src + +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/$gfid_dst  cleanup diff --git a/tests/bugs/shard/bug-1568521.t b/tests/bugs/shard/bug-1568521.t new file mode 100644 index 00000000000..167fb635ac8 --- /dev/null +++ b/tests/bugs/shard/bug-1568521.t @@ -0,0 +1,53 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc + + +function delete_files { +        local mountpoint=$1; +        local success=0; +        local value=$2 +        for i in {1..500}; do +                unlink $mountpoint/file-$i 2>/dev/null 1>/dev/null +                if [ $? -eq 0 ]; then +                        echo $2 >> $B0/output.txt +                fi +        done +        echo $success +} + +cleanup + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} +TEST $CLI volume set $V0 features.shard on +TEST $CLI volume set $V0 shard-block-size 4MB +TEST $CLI volume start $V0 + +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0 +TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M1 + +for i in {1..500}; do +        dd if=/dev/urandom of=$M0/file-$i bs=1M count=2 +done + +for i in {1..500}; do +        stat $M1/file-$i > /dev/null +done + +delete_files $M0 0 & +delete_files $M1 1 & +wait + +success1=$(grep 0 $B0/output.txt | wc -l); +success2=$(grep 1 $B0/output.txt | wc -l); + +echo "Success1 is $success1"; +echo "Success2 is $success2"; + +success_total=$((success1 + success2)); + +EXPECT 500 echo $success_total + +cleanup diff --git a/tests/bugs/shard/bug-shard-discard.t b/tests/bugs/shard/bug-shard-discard.t index 884d9e75ff5..910ade14801 100644 --- a/tests/bugs/shard/bug-shard-discard.t +++ b/tests/bugs/shard/bug-shard-discard.t @@ -5,6 +5,12 @@  cleanup +FILE_COUNT_TIME=5 + +function get_shard_count { +    ls $1/$2.* | wc -l +} +  TEST glusterd  TEST pidof glusterd  TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0..3} @@ -42,14 +48,11 @@ EXPECT_NOT "1" file_all_zeroes `find $B0 -name $gfid_foo.1`  # Now unlink the file. And ensure that all shards associated with the file are cleaned up  TEST unlink $M0/foo -#TEST ! stat $B0/${V0}0/.shard/$gfid_foo.1 -#TEST ! stat $B0/${V0}1/.shard/$gfid_foo.1 -#TEST ! stat $B0/${V0}2/.shard/$gfid_foo.1 -#TEST ! stat $B0/${V0}3/.shard/$gfid_foo.1 -#TEST ! stat $B0/${V0}0/.shard/$gfid_foo.2 -#TEST ! stat $B0/${V0}1/.shard/$gfid_foo.2 -#TEST ! stat $B0/${V0}2/.shard/$gfid_foo.2 -#TEST ! stat $B0/${V0}3/.shard/$gfid_foo.2 + +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_shard_count $B0/${V0}0/.shard $gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_shard_count $B0/${V0}1/.shard $gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_shard_count $B0/${V0}2/.shard $gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_shard_count $B0/${V0}3/.shard $gfid_foo  TEST ! stat $M0/foo  #clean up everything diff --git a/tests/bugs/shard/shard-inode-refcount-test.t b/tests/bugs/shard/shard-inode-refcount-test.t index c92dc07789d..087c8ba7815 100644 --- a/tests/bugs/shard/shard-inode-refcount-test.t +++ b/tests/bugs/shard/shard-inode-refcount-test.t @@ -5,6 +5,8 @@  cleanup +SHARD_COUNT_TIME=5 +  TEST glusterd  TEST pidof glusterd  TEST $CLI volume create $V0 $H0:$B0/${V0}0 @@ -18,7 +20,8 @@ TEST dd if=/dev/zero conv=fsync of=$M0/one-plus-five-shards bs=1M count=23  ACTIVE_INODES_BEFORE=$(get_mount_active_size_value $V0)  TEST rm -f $M0/one-plus-five-shards -#EXPECT `expr $ACTIVE_INODES_BEFORE - 4` get_mount_active_size_value $V0 +# Expect 5 inodes less. But one inode more than before because .remove_me would be created. +EXPECT_WITHIN $SHARD_COUNT_TIME `expr $ACTIVE_INODES_BEFORE - 5 + 1` get_mount_active_size_value $V0  EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0  TEST $CLI volume stop $V0 diff --git a/tests/bugs/shard/unlinks-and-renames.t b/tests/bugs/shard/unlinks-and-renames.t index 997c397dedb..6e5164f0b28 100644 --- a/tests/bugs/shard/unlinks-and-renames.t +++ b/tests/bugs/shard/unlinks-and-renames.t @@ -9,6 +9,12 @@ cleanup  # and rename fops in sharding and make sure they work fine.  # +FILE_COUNT_TIME=5 + +function get_file_count { +    ls $1* | wc -l +} +  #################################################  ################### UNLINK ######################  ################################################# @@ -36,13 +42,8 @@ gfid_foo=$(get_gfid_string $M0/dir/foo)  TEST unlink $M0/dir/foo  TEST stat $B0/${V0}0/.shard/.remove_me  TEST stat $B0/${V0}1/.shard/.remove_me -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_foo -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_foo - -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_foo -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_foo -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_foo -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_foo  ##################################################  ##### Unlink of a sharded file without holes ##### @@ -56,20 +57,14 @@ TEST stat $B0/${V0}1/.shard/$gfid_new.1  TEST stat $B0/${V0}0/.shard/$gfid_new.2  TEST stat $B0/${V0}1/.shard/$gfid_new.2  TEST unlink $M0/dir/new -#TEST ! stat $B0/${V0}0/.shard/$gfid_new.1 -#TEST ! stat $B0/${V0}1/.shard/$gfid_new.1 -#TEST ! stat $B0/${V0}0/.shard/$gfid_new.2 -#TEST ! stat $B0/${V0}1/.shard/$gfid_new.2 +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/$gfid_new +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/$gfid_new  TEST ! stat $M0/dir/new  TEST ! stat $B0/${V0}0/dir/new  TEST ! stat $B0/${V0}1/dir/new -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_new -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_new +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_new +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_new -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_new -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_new -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_new -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_new  #######################################  ##### Unlink with /.shard present #####  ####################################### @@ -83,13 +78,8 @@ TEST unlink $M0/dir/foo  TEST ! stat $B0/${V0}0/dir/foo  TEST ! stat $B0/${V0}1/dir/foo  TEST ! stat $M0/dir/foo -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_foo -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_foo - -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_foo -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_foo -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_foo -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_foo  #############################################################  ##### Unlink of a file with only one block (the zeroth) ##### @@ -102,13 +92,9 @@ TEST unlink $M0/dir/foo  TEST ! stat $B0/${V0}0/dir/foo  TEST ! stat $B0/${V0}1/dir/foo  TEST ! stat $M0/dir/foo -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_foo -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_foo +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_foo -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_foo -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_foo -EXPECT "0000000000100000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_foo -EXPECT "0000000000100000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_foo  ####################################################  ##### Unlink of a sharded file with hard-links #####  #################################################### @@ -137,22 +123,15 @@ TEST stat $B0/${V0}0/link  TEST stat $B0/${V0}1/link  # Now delete the last link.  TEST unlink $M0/link -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_original -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_original +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_original +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_original  # Ensure that the shards are all cleaned up. -#TEST ! stat $B0/${V0}0/.shard/$gfid_original.1 -#TEST ! stat $B0/${V0}1/.shard/$gfid_original.1 -#TEST ! stat $B0/${V0}0/.shard/$gfid_original.2 -#TEST ! stat $B0/${V0}1/.shard/$gfid_original.2 -#TEST ! stat $M0/link +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/$gfid_original +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/$gfid_original +TEST ! stat $M0/link  TEST ! stat $B0/${V0}0/link  TEST ! stat $B0/${V0}1/link -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_original -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_original -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_original -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_original -  EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0  TEST $CLI volume stop $V0  TEST $CLI volume delete $V0 @@ -190,13 +169,8 @@ TEST ! stat $B0/${V0}0/dir/src  TEST ! stat $B0/${V0}1/dir/src  TEST   stat $B0/${V0}0/dir/dst  TEST   stat $B0/${V0}1/dir/dst -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_dst -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_dst - -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_dst  ##################################################  ##### Rename to a sharded file without holes ##### @@ -212,23 +186,16 @@ TEST stat $B0/${V0}1/.shard/$gfid_dst.1  TEST stat $B0/${V0}0/.shard/$gfid_dst.2  TEST stat $B0/${V0}1/.shard/$gfid_dst.2  TEST mv -f $M0/dir/src $M0/dir/dst -#TEST ! stat $B0/${V0}0/.shard/$gfid_dst.1 -#TEST ! stat $B0/${V0}1/.shard/$gfid_dst.1 -#TEST ! stat $B0/${V0}0/.shard/$gfid_dst.2 -#TEST ! stat $B0/${V0}1/.shard/$gfid_dst.2 +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/$gfid_dst  TEST ! stat $M0/dir/src  TEST   stat $M0/dir/dst  TEST ! stat $B0/${V0}0/dir/src  TEST ! stat $B0/${V0}1/dir/src  TEST   stat $B0/${V0}0/dir/dst  TEST   stat $B0/${V0}1/dir/dst -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_dst -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_dst - -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_dst  ###################################################  ##### Rename of dst file with /.shard present ##### @@ -245,13 +212,8 @@ TEST ! stat $B0/${V0}0/dir/src  TEST ! stat $B0/${V0}1/dir/src  TEST   stat $B0/${V0}0/dir/dst  TEST   stat $B0/${V0}1/dir/dst -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_dst -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_dst - -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000500000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_dst  ###############################################################  ##### Rename of dst file with only one block (the zeroth) ##### @@ -268,13 +230,8 @@ TEST ! stat $B0/${V0}0/dir/src  TEST ! stat $B0/${V0}1/dir/src  TEST   stat $B0/${V0}0/dir/dst  TEST   stat $B0/${V0}1/dir/dst -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_dst -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_dst - -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000100000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000100000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_dst  ########################################################  ##### Rename to a dst sharded file with hard-links ##### @@ -307,20 +264,18 @@ TEST ! stat $B0/${V0}1/.shard/.remove_me/$gfid_dst  TEST touch $M0/dir/src2  TEST mv -f $M0/dir/src2 $M0/link  # Ensure that the shards are all cleaned up. -#TEST ! stat $B0/${V0}0/.shard/$gfid_dst.1 -#TEST ! stat $B0/${V0}1/.shard/$gfid_dst.1 -#TEST ! stat $B0/${V0}0/.shard/$gfid_dst.2 -#TEST ! stat $B0/${V0}1/.shard/$gfid_dst.2 +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/$gfid_dst +TEST ! stat $B0/${V0}0/.shard/$gfid_dst.1 +TEST ! stat $B0/${V0}1/.shard/$gfid_dst.1 +TEST ! stat $B0/${V0}0/.shard/$gfid_dst.2 +TEST ! stat $B0/${V0}1/.shard/$gfid_dst.2  TEST ! stat $M0/dir/src2  TEST ! stat $B0/${V0}0/dir/src2  TEST ! stat $B0/${V0}1/dir/src2 -TEST stat $B0/${V0}0/.shard/.remove_me/$gfid_dst -TEST stat $B0/${V0}1/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}0/.shard/.remove_me/$gfid_dst +EXPECT_WITHIN $FILE_COUNT_TIME 0 get_file_count $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000400000" get_hex_xattr trusted.glusterfs.shard.block-size $B0/${V0}1/.shard/.remove_me/$gfid_dst -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}0/.shard/.remove_me/$gfid_dst -EXPECT "0000000000900000000000000000000000000000000000000000000000000000" get_hex_xattr trusted.glusterfs.shard.file-size $B0/${V0}1/.shard/.remove_me/$gfid_dst  # Rename with non-existent dst and a sharded src  TEST touch $M0/dir/src  TEST dd if=/dev/zero of=$M0/dir/src bs=1024 count=9216  | 
