diff options
| -rw-r--r-- | glusterfsd/src/glusterfsd-mgmt.c | 13 | ||||
| -rw-r--r-- | tests/basic/volfile-sanity.t | 26 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server.c | 10 | 
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);  | 
