summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoseph Fernandes <josferna@redhat.com>2014-04-17 19:42:06 +0530
committerVijay Bellur <vbellur@redhat.com>2014-04-30 09:12:18 -0700
commit48043e3c11921a6cac532f2e56ccca6b72539dba (patch)
treecc7c282e73d9e5486271857ef364cfc1427e861e
parent45d70cc74828b636c0d3c8e388f5b111e1a563ad (diff)
[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 <josferna@redhat.com> Reviewed-on: http://review.gluster.org/7500 Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Rajesh Joseph <rjoseph@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-mgmt.c2
1 files changed, 1 insertions, 1 deletions
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;