diff options
Diffstat (limited to '0256-features-snapview-server-use-the-same-volfile-server.patch')
-rw-r--r-- | 0256-features-snapview-server-use-the-same-volfile-server.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/0256-features-snapview-server-use-the-same-volfile-server.patch b/0256-features-snapview-server-use-the-same-volfile-server.patch new file mode 100644 index 0000000..d410373 --- /dev/null +++ b/0256-features-snapview-server-use-the-same-volfile-server.patch @@ -0,0 +1,117 @@ +From f90df1167bc70c634ba33c181232321da6770709 Mon Sep 17 00:00:00 2001 +From: Raghavendra Bhat <raghavendra@redhat.com> +Date: Tue, 25 Jun 2019 10:51:33 -0400 +Subject: [PATCH 256/261] features/snapview-server: use the same volfile server + for gfapi options + +snapview server xlator makes use of "localhost" as the volfile server while +initing the new glfs instance to talk to a snapshot. While localhost is fine, +better use the same volfile server that was used to start the snapshot +daemon containing the snapview-server xlator. + +Upstream Patch: +>Change-Id: I4485d39b0e3d066f481adc6958ace53ea33237f7 +>fixes: bz#1725211 +>Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> +> patch: https://review.gluster.org/#/c/glusterfs/+/22974/ + +BUG: 1722757 +Change-Id: I4485d39b0e3d066f481adc6958ace53ea33237f7 +Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com> +Reviewed-on: https://code.engineering.redhat.com/gerrit/175984 +Tested-by: RHGS Build Bot <nigelb@redhat.com> +Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com> +--- + .../snapview-server/src/snapview-server-helpers.c | 44 ++++++++++++++++++++-- + .../snapview-server/src/snapview-server-messages.h | 2 +- + 2 files changed, 42 insertions(+), 4 deletions(-) + +diff --git a/xlators/features/snapview-server/src/snapview-server-helpers.c b/xlators/features/snapview-server/src/snapview-server-helpers.c +index 5514a54..62c1dda 100644 +--- a/xlators/features/snapview-server/src/snapview-server-helpers.c ++++ b/xlators/features/snapview-server/src/snapview-server-helpers.c +@@ -476,6 +476,7 @@ __svs_initialise_snapshot_volume(xlator_t *this, const char *name, + char logfile[PATH_MAX] = { + 0, + }; ++ char *volfile_server = NULL; + + GF_VALIDATE_OR_GOTO("snapview-server", this, out); + GF_VALIDATE_OR_GOTO(this->name, this->private, out); +@@ -512,14 +513,50 @@ __svs_initialise_snapshot_volume(xlator_t *this, const char *name, + goto out; + } + +- ret = glfs_set_volfile_server(fs, "tcp", "localhost", 24007); ++ /* ++ * Before, localhost was used as the volfile server. But, with that ++ * method, accessing snapshots started giving ENOENT error if a ++ * specific bind address is mentioned in the glusterd volume file. ++ * Check the bug https://bugzilla.redhat.com/show_bug.cgi?id=1725211. ++ * So, the new method is tried below, where, snapview-server first ++ * uses the volfile server used by the snapd (obtained from the ++ * command line arguments saved in the global context of the process). ++ * If the volfile server in global context is NULL, then localhost ++ * is tried (like before). ++ */ ++ if (this->ctx->cmd_args.volfile_server) { ++ volfile_server = gf_strdup(this->ctx->cmd_args.volfile_server); ++ if (!volfile_server) { ++ gf_msg(this->name, GF_LOG_WARNING, ENOMEM, ++ SVS_MSG_VOLFILE_SERVER_GET_FAIL, ++ "failed to copy volfile server %s. ", ++ this->ctx->cmd_args.volfile_server); ++ ret = -1; ++ goto out; ++ } ++ } else { ++ gf_msg(this->name, GF_LOG_WARNING, ENOMEM, ++ SVS_MSG_VOLFILE_SERVER_GET_FAIL, ++ "volfile server is NULL in cmd args. " ++ "Trying with localhost"); ++ volfile_server = gf_strdup("localhost"); ++ if (!volfile_server) { ++ gf_msg(this->name, GF_LOG_WARNING, ENOMEM, ++ SVS_MSG_VOLFILE_SERVER_GET_FAIL, ++ "failed to copy volfile server localhost."); ++ ret = -1; ++ goto out; ++ } ++ } ++ ++ ret = glfs_set_volfile_server(fs, "tcp", volfile_server, 24007); + if (ret) { + gf_msg(this->name, GF_LOG_ERROR, local_errno, + SVS_MSG_SET_VOLFILE_SERVR_FAILED, + "setting the " +- "volfile server for snap volume %s " ++ "volfile server %s for snap volume %s " + "failed", +- dirent->name); ++ volfile_server, dirent->name); + goto out; + } + +@@ -561,6 +598,7 @@ out: + dirent->fs = fs; + } + ++ GF_FREE(volfile_server); + return fs; + } + +diff --git a/xlators/features/snapview-server/src/snapview-server-messages.h b/xlators/features/snapview-server/src/snapview-server-messages.h +index 8548015..f634ab5 100644 +--- a/xlators/features/snapview-server/src/snapview-server-messages.h ++++ b/xlators/features/snapview-server/src/snapview-server-messages.h +@@ -49,6 +49,6 @@ GLFS_MSGID(SNAPVIEW_SERVER, SVS_MSG_NO_MEMORY, SVS_MSG_MEM_ACNT_FAILED, + SVS_MSG_CLOSEDIR_FAILED, SVS_MSG_CLOSE_FAILED, + SVS_MSG_GFID_GEN_FAILED, SVS_MSG_GLFS_NEW_FAILED, + SVS_MSG_SET_VOLFILE_SERVR_FAILED, SVS_MSG_SET_LOGGING_FAILED, +- SVS_MSG_GLFS_INIT_FAILED); ++ SVS_MSG_VOLFILE_SERVER_GET_FAIL, SVS_MSG_GLFS_INIT_FAILED); + + #endif /* !_SNAPVIEW_CLIENT_MESSAGES_H_ */ +-- +1.8.3.1 + |