summaryrefslogtreecommitdiffstats
path: root/glusterfsd
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2018-04-17 23:05:54 +0530
committerJeff Darcy <jeff@pl.atyp.us>2018-05-08 21:16:24 +0000
commit52d9b8bcd5b0aee750a22d53b46c804d608d8bba (patch)
treef21e11003d8d83fb6dd8bd19fea387152a08c3b6 /glusterfsd
parented5a09e4aea7f64f9a43698955e24285a936f0c0 (diff)
protocol/server: don't assume there would be a volfile id
Earlier glusterfs never had an assumption someone would start it with right arguments, and brick processes would be spawned by a management layer. It just assume the role based on the volfile. Other than volfile, no other arguments should be technically mandatory for working of glusterfs. With this patch, that assumption holds true. Updates: github issue # 352 A note on why this particular issue for this basic sanity? As per the design of thin-arbiter/tie-breaker, it can be started independently on any machine, without need of glusterd. So, similar to 'glusterd', we should be able to spawn a process with any translator without options/volume id etc. fixes: bz#1569399 Change-Id: I5c0650fe0bfde35ad94ccba60e63f6cdcd1ae5ff Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'glusterfsd')
-rw-r--r--glusterfsd/src/glusterfsd-mgmt.c13
1 files changed, 12 insertions, 1 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);