From 3afff4aacd1b74eff44a9fe320b1547eb165b2eb Mon Sep 17 00:00:00 2001 From: Mohammed Rafi KC Date: Thu, 12 Feb 2015 18:59:35 +0530 Subject: snapshot: Handshake with glusterd is not proper Backport of http://review.gluster.org/9664 If a snap is activated or deactivated, when a node is down, it is not retrieving the data properly during the handshake of glusterd With this patch, a version check will made when a glusterd is started running. If there is a mismach in version, then peers will exchange the healed data. Change-Id: I8bd2a347723db2194d3fa73295878b4dd2e9be5d BUG: 1219744 Signed-off-by: Mohammed Rafi KC Reviewed-on: http://review.gluster.org/9664 Tested-by: Gluster Build System Reviewed-by: Avra Sengupta Reviewed-by: Rajesh Joseph Reviewed-by: Kaushal M Reviewed-on: http://review.gluster.org/10661 --- tests/basic/volume-snapshot.t | 13 +++++++++++++ tests/snapshot.rc | 27 +++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) (limited to 'tests') diff --git a/tests/basic/volume-snapshot.t b/tests/basic/volume-snapshot.t index 7987d4039d3..fb6a73c8953 100755 --- a/tests/basic/volume-snapshot.t +++ b/tests/basic/volume-snapshot.t @@ -114,6 +114,19 @@ activate_snapshots EXPECT 'Started' snapshot_status ${V0}_snap; EXPECT 'Started' snapshot_status ${V1}_snap; +#testing handshake with glusterd (bugid:1122064) + +TEST kill_glusterd 2 +deactivate_snapshots +TEST start_glusterd 2 +sleep 10 +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Success" snapshot_snap_status ${V0}_snap "Brick\ Running" "No" +TEST kill_glusterd 2 +activate_snapshots +TEST start_glusterd 2 +sleep 10 +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Success" snapshot_snap_status ${V0}_snap "Brick\ Running" "Yes" + TEST snapshot_exists 1 ${V0}_snap TEST snapshot_exists 1 ${V1}_snap TEST $CLI_1 snapshot config $V0 snap-max-hard-limit 100 diff --git a/tests/snapshot.rc b/tests/snapshot.rc index 7fe9b39cd7c..f2ff047a8ea 100644 --- a/tests/snapshot.rc +++ b/tests/snapshot.rc @@ -307,6 +307,33 @@ function snapshot_status() } +#Check the different status of a particular snapshot +#Arg1 : +#Arg2 : +#Arg3 : +function snapshot_snap_status() +{ + + local snap=$1; + local cli=$CLI_1; + local field=$2; + local expected=$3; + if [ "$cli" = "" ]; then + cli=$CLI + fi + for i in $($cli snapshot status $snap | grep "$field" | \ + cut -d ':' -f2 | awk '{print $1}') ; + do + if [ "$i" != "$expected" ]; then + echo "Failed" + return 1; + fi; + done; +echo "Success" +return 0; +} + + # TODO: Cleanup code duplication function volinfo_field() { -- cgit