diff options
author | Raghavendra Bhat <raghavendra@redhat.com> | 2014-06-16 16:11:46 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-06-16 06:14:52 -0700 |
commit | 0031bd1d18c874f3b68b59df7f84fce354b9b86c (patch) | |
tree | 7f67ccea4214b7732e024c1bfde68c46ef103d83 | |
parent | 4f9dff83ad3b91fcb066f26c1085ada002b3bc36 (diff) |
mgmt/glusterd: volume stop should also stop its snapview-daemon
Change-Id: I702372c6c8341b54710c531662e3fd738cfb5f9a
BUG: 1109770
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/8076
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r-- | tests/bugs/bug-1109770.t | 69 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 11 |
2 files changed, 79 insertions, 1 deletions
diff --git a/tests/bugs/bug-1109770.t b/tests/bugs/bug-1109770.t new file mode 100644 index 00000000000..3ee43e3e304 --- /dev/null +++ b/tests/bugs/bug-1109770.t @@ -0,0 +1,69 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +. $(dirname $0)/../snapshot.rc +. $(dirname $0)/../fileio.rc +. $(dirname $0)/../nfs.rc + +cleanup; + +TEST init_n_bricks 3; +TEST setup_lvm 3; + +TEST glusterd; + +TEST pidof glusterd; + +TEST $CLI volume create $V0 $H0:$L1 $H0:$L2 $H0:$L3; + +TEST $CLI volume start $V0; + +TEST glusterfs --volfile-server=$H0 --volfile-id=$V0 $M0; + +for i in {1..10} ; do echo "file" > $M0/file$i ; done + +TEST $CLI snapshot create snap1 $V0; + +for i in {11..20} ; do echo "file" > $M0/file$i ; done + +TEST $CLI snapshot create snap2 $V0; + +mkdir $M0/dir1; +mkdir $M0/dir2; + +for i in {1..10} ; do echo "foo" > $M0/dir1/foo$i ; done +for i in {1..10} ; do echo "foo" > $M0/dir2/foo$i ; done + +TEST $CLI snapshot create snap3 $V0; + +for i in {11..20} ; do echo "foo" > $M0/dir1/foo$i ; done +for i in {11..20} ; do echo "foo" > $M0/dir2/foo$i ; done + +TEST $CLI snapshot create snap4 $V0; + +TEST $CLI volume set $V0 features.uss enable; + +SNAPD_PID=$(ps aux | grep snapd | grep -v grep | awk '{print $2}'); + +TEST [ $SNAPD_PID -gt 0 ]; + +TEST $CLI volume stop $V0; + +SNAPD_PID=$(ps aux | grep snapd | grep -v grep | awk '{print $2}'); + +TEST ! [ $SNAPD_PID -gt 0 ]; + +TEST $CLI volume start $V0; + +SNAPD_PID=$(ps aux | grep snapd | grep -v grep | awk '{print $2}'); + +TEST [ $SNAPD_PID -gt 0 ]; + +TEST $CLI volume stop $V0; + +SNAPD_PID=$(ps aux | grep snapd | grep -v grep | awk '{print $2}'); + +TEST ! [ $SNAPD_PID -gt 0 ]; + +cleanup ; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index f02b6197428..66eb9408a6b 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -13408,8 +13408,17 @@ glusterd_handle_snapd_option (glusterd_volinfo_t *volinfo) return 0; if (glusterd_is_snapd_enabled (volinfo)) { - if (!glusterd_is_volume_started (volinfo)) + if (!glusterd_is_volume_started (volinfo)) { + if (glusterd_is_snapd_running (volinfo)) { + ret = glusterd_snapd_stop (volinfo); + if (ret) + gf_log (this->name, GF_LOG_ERROR, + "Couldn't stop snapd for " + "volume: %s", + volinfo->volname); + } goto out; + } ret = glusterd_create_snapd_volfile (volinfo); if (ret) { |