diff options
author | Joseph Fernandes <josferna@redhat.com> | 2014-04-17 19:42:06 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-04-30 09:12:18 -0700 |
commit | 48043e3c11921a6cac532f2e56ccca6b72539dba (patch) | |
tree | cc7c282e73d9e5486271857ef364cfc1427e861e /xlators/mgmt/glusterd/src | |
parent | 45d70cc74828b636c0d3c8e388f5b111e1a563ad (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>
Diffstat (limited to 'xlators/mgmt/glusterd/src')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-mgmt.c | 2 |
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; |