summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--glusterfsd/src/glusterfsd-mgmt.c13
-rw-r--r--tests/basic/volfile-sanity.t26
-rw-r--r--xlators/protocol/server/src/server.c10
3 files changed, 47 insertions, 2 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c
index e30d9287575..5666a532696 100644
--- a/glusterfsd/src/glusterfsd-mgmt.c
+++ b/glusterfsd/src/glusterfsd-mgmt.c
@@ -861,6 +861,13 @@ glusterfs_handle_attach (rpcsvc_request_t *req)
this = THIS;
GF_ASSERT (this);
+ ctx = this->ctx;
+ if (!ctx->cmd_args.volfile_id) {
+ gf_log (THIS->name, GF_LOG_ERROR,
+ "No volfile-id provided, erroring out");
+ return -1;
+ }
+
ret = xdr_to_generic (req->msg[0], &xlator_req,
(xdrproc_t)xdr_gd1_mgmt_brick_op_req);
@@ -870,7 +877,6 @@ glusterfs_handle_attach (rpcsvc_request_t *req)
return -1;
}
ret = 0;
- ctx = this->ctx;
LOCK (&ctx->volfile_lock);
{
@@ -2089,6 +2095,11 @@ glusterfs_volfile_fetch_one (glusterfs_ctx_t *ctx, char *volfile_id)
cmd_args = &ctx->cmd_args;
if (!volfile_id) {
volfile_id = ctx->cmd_args.volfile_id;
+ if (!volfile_id) {
+ gf_log (THIS->name, GF_LOG_ERROR,
+ "No volfile-id provided, erroring out");
+ return -1;
+ }
}
frame = create_frame (THIS, ctx->pool);
diff --git a/tests/basic/volfile-sanity.t b/tests/basic/volfile-sanity.t
new file mode 100644
index 00000000000..04d1d2869c2
--- /dev/null
+++ b/tests/basic/volfile-sanity.t
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+. $(dirname $0)/../include.rc
+
+cleanup;
+
+## Start and create a volume
+TEST glusterd
+TEST pidof glusterd
+
+TEST $CLI volume create $V0 $H0:$B0/${V0}1
+
+killall glusterd
+
+## Mount FUSE with caching disabled (read-write)
+TEST $GFS -f /var/lib/glusterd/vols/${V0}/${V0}.${H0}.*.vol
+TEST $GFS -f /var/lib/glusterd/vols/${V0}/${V0}.tcp-fuse.vol $M0
+
+TEST $(df -h $M0 | grep -q ${V0})
+TEST $(cat /proc/mounts | grep -q $M0)
+
+TEST ! stat $M0/newfile;
+TEST touch $M0/newfile;
+TEST rm $M0/newfile;
+
+cleanup;
diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c
index 254a5ca6c62..eef956cc21a 100644
--- a/xlators/protocol/server/src/server.c
+++ b/xlators/protocol/server/src/server.c
@@ -1210,7 +1210,15 @@ server_init (xlator_t *this)
}
}
#endif
-
+ if (!this->ctx->cmd_args.volfile_id) {
+ /* In some use cases this is a valid case, but
+ document this to be annoying log in that case */
+ gf_msg (this->name, GF_LOG_WARNING, EINVAL,
+ PS_MSG_VOL_FILE_OPEN_FAILED,
+ "volfile-id argument not given. "
+ "This is mandatory argument, defaulting to 'gluster'");
+ this->ctx->cmd_args.volfile_id = gf_strdup ("gluster");
+ }
FIRST_CHILD(this)->volfile_id
= gf_strdup (this->ctx->cmd_args.volfile_id);