diff options
author | Kotresh HR <khiremat@redhat.com> | 2015-07-06 15:05:43 +0530 |
---|---|---|
committer | Krishnan Parthasarathi <kparthas@redhat.com> | 2015-07-07 04:04:40 -0700 |
commit | 91e1d0dd620941c91794d697a8388cd524d2e3bf (patch) | |
tree | fe28c14fa05ee33b8ea2006860af2aa5393b9d9f /xlators | |
parent | df580c4431de6fbf10017b891059583a52a406eb (diff) | |
download | glusterfs-91e1d0dd620941c91794d697a8388cd524d2e3bf.tar.gz glusterfs-91e1d0dd620941c91794d697a8388cd524d2e3bf.tar.xz glusterfs-91e1d0dd620941c91794d697a8388cd524d2e3bf.zip |
glusterd/geo-rep: Fix failure of geo-rep pause
Geo-replication pause fails if one or more of the nodes
in the master cluster is not part of master volume.
If the master volume bricks are not part of the node,
it should be ignored. The check is added to fix the issue.
Change-Id: Iba57d66b6db6919f42a95dd66e6db9ad1b21503b
BUG: 1240229
Signed-off-by: Kotresh HR <khiremat@redhat.com>
Reviewed-on: http://review.gluster.org/11549
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Avra Sengupta <asengupt@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-geo-rep.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c index 2398b6a8c7..d30929eade 100644 --- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c +++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c @@ -3013,13 +3013,26 @@ glusterd_op_stage_gsync_set (dict_t *dict, char **op_errstr) ret = glusterd_op_verify_gsync_running (volinfo, slave, conf_path, op_errstr); - if (ret) - goto out; + if (ret) { + ret = glusterd_get_local_brickpaths (volinfo, + &path_list); + if (path_list) { + ret = -1; + goto out; + } + } + if (!is_force) { ret = gd_pause_resume_validation (type, volinfo, slave, statefile, op_errstr); - if (ret) - goto out; + if (ret) { + ret = glusterd_get_local_brickpaths (volinfo, + &path_list); + if (path_list) { + ret = -1; + goto out; + } + } } break; |