[Gluster-devel] feature/trash and NetBSD
Anoop C S
achiraya at redhat.com
Tue Mar 31 09:33:11 UTC 2015
On 03/31/2015 02:49 PM, Emmanuel Dreyfus wrote:
> On Tue, Mar 31, 2015 at 10:57:12AM +0530, Anoop C S wrote:
>> The above mentioned patch for skipping extended truncate
>> [http://review.gluster.org/#/c/9984/] got merged yesterday. And some
>> portability fixes for trash.t was included in your recently merged patch
>> [http://review.gluster.org/#/c/10033/]. Now we expect trash.t to run
>> more smoothly than before on NetBSD. Feel free to reply with outstanding
>> failures.
>
> There are other problems, many tieming issues that can be addressed
> using the appropriate wrappers (see patch below). However, it still fails
> on test 56 which is about restarting the volume:
>
Thanks for the patch.
> TEST 56 (line 207): gluster --mode=script --wignore volume start patchy1 force
> [09:12:53] ./tests/features/trash.t .. 56/65
> not ok 56
>
> Could you have a look? You will find the test ready to run with my
> latest patches on nbslave76.cloud.gluster.org:/autobuild/glusterfs
>
Thanks for spending your valuable time on trash.t. I will login and
check now. By the way, what is the password for root login?
--Anoop C S.
> diff --git a/tests/features/trash.t b/tests/features/trash.t
> index cbcff23..4546b57 100755
> --- a/tests/features/trash.t
> +++ b/tests/features/trash.t
> @@ -7,7 +7,11 @@ cleanup
>
> test_mount() {
> glusterfs -s $H0 --volfile-id $V0 $M0 --attribute-timeout=0
> - test -d $M0/.trashcan
> + timeout=0
> + while [ $timeout -lt $PROCESS_UP_TIMEOUT ] ; do
> + timeout=$(( $timeout + 1 ))
> + test -d $M0/.trashcan && break
> + done
> }
>
> start_vol() {
> @@ -15,19 +19,23 @@ start_vol() {
> test_mount
> }
>
> -stop_vol() {
> - umount $M0
> - $CLI volume stop $V0
> -}
> -
> create_files() {
> echo 'Hi' > $1
> echo 'Hai' > $2
> }
>
> -file_exists() {
> - test -e $B0/${V0}1/$1 -o -e $B0/${V0}2/$1
> - test -e $B0/${V0}1/$2 -o -e $B0/${V0}2/$2
> +file_exists () {
> + vol=$1
> + shift
> + for file in `ls $B0/${vol}1/$@ 2>/dev/null` ; do
> + test -e ${file} && { echo "Y"; return 0; }
> + done
> + for file in `ls $B0/${vol}2/$@ 2>/dev/null` ; do
> + test -e ${file} && { echo "Y"; return 0; }
> + done
> +
> + echo "N"
> + return 1;
> }
>
> unlink_op() {
> @@ -85,7 +93,7 @@ EXPECT 'on' volinfo_field $V0 'features.trash'
>
> # files directly under mount point [13]
> create_files $M0/file1 $M0/file2
> -TEST file_exists file1 file2
> +TEST file_exists $V0 file1 file2
>
> # perform unlink [14]
> TEST unlink_op file1
> @@ -96,7 +104,7 @@ TEST truncate_op file2 4
> # create files directory hierarchy and check [16]
> mkdir -p $M0/1/2/3
> create_files $M0/1/2/3/foo1 $M0/1/2/3/foo2
> -TEST file_exists 1/2/3/foo1 1/2/3/foo2
> +TEST file_exists $V0 1/2/3/foo1 1/2/3/foo2
>
> # perform unlink [17]
> TEST unlink_op 1/2/3/foo1
> @@ -113,7 +121,7 @@ EXPECT '/a' volinfo_field $V0 'features.trash-eliminate-path'
>
> # create two files and check [21]
> create_files $M0/a/test1 $M0/a/test2
> -TEST file_exists a/test1 a/test2
> +TEST file_exists $V0 a/test1 a/test2
>
> # remove from eliminate pattern [22]
> rm -f $M0/a/test1
> @@ -131,7 +139,7 @@ EXPECT 'on' volinfo_field $V0 'features.trash-internal-op'
>
> # again create two files and check [28]
> create_files $M0/inop1 $M0/inop2
> -TEST file_exists inop1 inop2
> +TEST file_exists $V0 inop1 inop2
>
> # perform unlink [29]
> TEST unlink_op inop1
> @@ -141,11 +149,12 @@ TEST truncate_op inop2 4
>
> # remove one brick and restart the volume [31-33]
> TEST $CLI volume remove-brick $V0 $H0:$B0/${V0}2 force
> -TEST stop_vol
> +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
> +$CLI volume stop $V0
> TEST start_vol
> # again create two files and check [34]
> create_files $M0/rebal1 $M0/rebal2
> -TEST file_exists rebal1 rebal2
> +TEST file_exists $V0 rebal1 rebal2
>
> # add one brick [35-36]
> TEST $CLI volume add-brick $V0 $H0:$B0/${V0}3
> @@ -158,7 +167,8 @@ sleep 3
> # check whether rebalance was succesful [38-40]
> TEST [ -e $B0/${V0}3/rebal2 ]
> TEST [ -e $B0/${V0}1/.trashcan/internal_op/rebal2* ]
> -TEST stop_vol
> +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
> +$CLI volume stop $V0
>
> # create a replicated volume [41]
> TEST $CLI volume create $V1 replica 2 $H0:$B0/${V1}{1,2}
> @@ -187,9 +197,10 @@ touch $M1/self
> TEST [ -e $B0/${V1}1/self -a -e $B0/${V1}2/self ]
>
> # kill one brick and delete the file from mount point [55]
> -kill `ps aux| grep glusterfsd | awk '{print $2}' | head -1`
> +kill `ps auxww| grep glusterfsd | awk '{print $2}' | head -1`
> sleep 2
> rm -f $M1/self
> +sleep 1
> TEST [ -e $M1/.trashcan/self* ]
>
> # force start the volume and trigger the self-heal manually [56]
> @@ -197,7 +208,7 @@ TEST $CLI volume start $V1 force
> sleep 3
>
> # check for the removed file in trashcan [57]
> -TEST [ -e $B0/${V1}1/.trashcan/internal_op/self* -o -e $B0/${V1}2/.trashcan/internal_op/self* ]
> +EXPECT_WITHIN $HEAL_TIMEOUT "Y" file_exists $V1 .trashcan/internal_op/self*
>
> # check renaming of trash directory through cli [58-62]
> TEST $CLI volume set $V0 trash-dir abc
>
>
More information about the Gluster-devel
mailing list