mirror of
https://github.com/gluster/glusterfs.git
synced 2026-02-06 09:48:44 +01:00
Description of problem: server.statedump-path is the path where statedumps are stored, by default it is /var/run/gluster. And can be set to any valid directory path. It was observed that server.statedump-path was also accepting file, non-existent file and non-existent paths as well. And statedump command was successful even when statedumps with all the invalid paths. a. A file b. A non-existent path Solution: Added a validation function in gluster-volume-set.c which will allow volume set to success if it's a valid directory and in all other cases, volume set should fail. Fixes: bz#1787122 Change-Id: Ia66e2b3d35f23efc5444c829928779a79d827b42 Signed-off-by: yatipadia <ypadia@redhat.com> Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
. $(dirname $0)/../include.rc
|
|
. $(dirname $0)/../volume.rc
|
|
|
|
cleanup;
|
|
|
|
TEST glusterd
|
|
TEST pidof glusterd
|
|
TEST $CLI volume info;
|
|
|
|
TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{1,2,3,4,5,6};
|
|
|
|
EXPECT "$V0" volinfo_field $V0 'Volume Name';
|
|
EXPECT 'Created' volinfo_field $V0 'Status';
|
|
EXPECT '6' brick_count $V0
|
|
|
|
TEST $CLI volume start $V0;
|
|
EXPECT 'Started' volinfo_field $V0 'Status';
|
|
|
|
TEST $CLI volume add-brick $V0 $H0:$B0/${V0}{9,10,11};
|
|
EXPECT '9' brick_count $V0
|
|
|
|
TEST $CLI volume remove-brick $V0 $H0:$B0/${V0}{1,2,3} force;
|
|
EXPECT '6' brick_count $V0
|
|
|
|
TEST $CLI volume top $V0 read-perf bs 4096 count 1000
|
|
TEST $CLI volume top $V0 write-perf bs 1048576 count 2
|
|
|
|
TEST touch $M0/foo
|
|
|
|
# statedump path should be a directory, setting it to a file path should fail
|
|
|
|
TEST ! $CLI v set $V0 server.statedump-path $M0/foo;
|
|
EXPECT '/var/run/gluster' $CLI v get $V0 server.statedump-path
|
|
|
|
#set the statedump path to an existing ditectory which should succeed
|
|
TEST mkdir $D0/level;
|
|
TEST $CLI v set $V0 server.statedump-path $D0/level
|
|
EXPECT '/level' volinfo_field $V0 'server.statedump-path'
|
|
|
|
ret=$(ls $D0/level | wc -l);
|
|
TEST [ $ret == 0 ]
|
|
TEST $CLI v statedump $V0;
|
|
ret=$(ls $D0/level | wc -l);
|
|
TEST ! [ $ret == 0 ]
|
|
|
|
#set the statedump path to a non - existing directory which should fail
|
|
TEST ! $CLI v set $V0 server.statedump-path /root/test
|
|
EXPECT '/level' volinfo_field $V0 'server.statedump-path'
|
|
|
|
TEST rm -rf $D0/level
|
|
|
|
TEST $CLI volume stop $V0
|
|
EXPECT 'Stopped' volinfo_field $V0 'Status'
|
|
|
|
TEST $CLI volume delete $V0
|
|
TEST ! $CLI volume info $V0
|
|
|
|
cleanup;
|