From 4242857196697d3fcfc0c7a75ede4a666518ea0b Mon Sep 17 00:00:00 2001 From: Raghavendra G Date: Wed, 1 Jul 2015 16:54:55 +0530 Subject: protocol/server: fail setvolume if any of xlators is not initialized yet We can only start recieving fops only when all xlators in graph are initialized. Change-Id: Id79100bab5878bb2518ed133c1118554fbb35229 BUG: 1236945 Signed-off-by: Raghavendra G Reviewed-on: http://review.gluster.org/11490 Reviewed-by: Krishnan Parthasarathi Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Venky Shankar Reviewed-by: Raghavendra Bhat --- xlators/protocol/server/src/server-handshake.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'xlators/protocol/server/src/server-handshake.c') diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c index 6d34fe8e35d..7ee12c49076 100644 --- a/xlators/protocol/server/src/server-handshake.c +++ b/xlators/protocol/server/src/server-handshake.c @@ -367,6 +367,23 @@ server_setvolume (rpcsvc_request_t *req) config_params = dict_copy_with_ref (this->options, NULL); conf = this->private; + if (conf->parent_up == _gf_false) { + /* PARENT_UP indicates that all xlators in graph are inited + * successfully + */ + op_ret = -1; + op_errno = EAGAIN; + + ret = dict_set_str (reply, "ERROR", + "xlator graph in server is not initialised " + "yet. Try again later"); + if (ret < 0) + gf_msg_debug (this->name, 0, "failed to set error: " + "xlator graph in server is not " + "initialised yet. Try again later"); + goto fail; + } + buf = memdup (args.dict.dict_val, args.dict.dict_len); if (buf == NULL) { op_ret = -1; -- cgit