diff options
| -rw-r--r-- | tests/bugs/bug-1104642.t | 46 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 10 | 
2 files changed, 53 insertions, 3 deletions
diff --git a/tests/bugs/bug-1104642.t b/tests/bugs/bug-1104642.t new file mode 100644 index 00000000000..c5cb72794aa --- /dev/null +++ b/tests/bugs/bug-1104642.t @@ -0,0 +1,46 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +. $(dirname $0)/../cluster.rc + + +function get_value() +{ +        local key=$1 +        local var="CLI_$2" + +        eval cli_index=\$$var + +        $cli_index volume info | grep "^$key"\ +                               | sed 's/.*: //' +} + +cleanup + +TEST launch_cluster 2 + +TEST $CLI_1 peer probe $H2; +EXPECT_WITHIN $PROBE_TIMEOUT 1 peer_count + +TEST $CLI_1 volume create $V0 $H1:$B1/${V0}0 $H2:$B2/${V0}1 +EXPECT "$V0" get_value 'Volume Name' 1 +EXPECT "Created" get_value 'Status' 1 + +TEST $CLI_1 volume start $V0 +EXPECT "Started" get_value 'Status' 1 + +#Bring down 2nd glusterd +TEST kill_glusterd 2 + +#set the volume all options from the 1st glusterd +TEST $CLI_1 volume set all cluster.server-quorum-ratio 80 + +#Bring back the 2nd glusterd +TEST $glusterd_2 + +#Verify whether the value has been synced +EXPECT '80' get_value 'cluster.server-quorum-ratio' 1 +EXPECT '80' get_value 'cluster.server-quorum-ratio' 2 + +cleanup; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 95401c1ca05..c8ea95c7719 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -5615,6 +5615,13 @@ glusterd_compare_friend_data (dict_t *peer_data, int32_t *status,          GF_ASSERT (peer_data);          GF_ASSERT (status); +        ret = glusterd_import_global_opts (peer_data); +        if (ret) { +                gf_log (this->name, GF_LOG_ERROR, "Importing global " +                        "options failed"); +                goto out; +        } +          ret = dict_get_int32 (peer_data, "count", &count);          if (ret)                  goto out; @@ -5642,9 +5649,6 @@ glusterd_compare_friend_data (dict_t *peer_data, int32_t *status,                          stale_shd = _gf_true;                  if (glusterd_is_nodesvc_running ("quotad"))                          stale_qd  = _gf_true; -                ret = glusterd_import_global_opts (peer_data); -                if (ret) -                        goto out;                  ret = glusterd_import_friend_volumes (peer_data);                  if (ret)                          goto out;  | 
