From 48043e3c11921a6cac532f2e56ccca6b72539dba Mon Sep 17 00:00:00 2001 From: Joseph Fernandes Date: Thu, 17 Apr 2014 19:42:06 +0530 Subject: [glusterd/snapshot] Glusterd crashes when a same command eg snapshot create is fired simultaneously on a node Cause: In glusterd_mgmt_v3_initiate_snap_phases() , the function glusterd_mgmt_v3_post_validate() asserts on the NULL value of req_dic. req_dic is not initialized as glusterd_mgmt_v3_initiate_lockdown() is not able to acquire the lock and comes to the "out" section, before initializing req_dic (via glusterd_mgmt_v3_build_payload) Fix: Call glusterd_mgmt_v3_post_validate() only if the lock is acquired. Change-Id: I7cb55b6c0013ad1c8bbb922a62c34aab097bafe9 BUG: 1090047 Signed-off-by: Joseph Fernandes Reviewed-on: http://review.gluster.org/7500 Reviewed-by: Krishnan Parthasarathi Tested-by: Gluster Build System Reviewed-by: Rajesh Joseph Reviewed-by: Vijay Bellur --- xlators/mgmt/glusterd/src/glusterd-mgmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-mgmt.c b/xlators/mgmt/glusterd/src/glusterd-mgmt.c index 5295f889eaa..1ae07370612 100644 --- a/xlators/mgmt/glusterd/src/glusterd-mgmt.c +++ b/xlators/mgmt/glusterd/src/glusterd-mgmt.c @@ -1306,7 +1306,7 @@ glusterd_mgmt_v3_post_validate (glusterd_conf_t *conf, glusterd_op_t op, GF_ASSERT (this); GF_ASSERT (conf); GF_ASSERT (dict); - GF_ASSERT (req_dict); + GF_VALIDATE_OR_GOTO (this->name, req_dict, out); GF_ASSERT (op_errstr); peers = &conf->xaction_peers; -- cgit