autobuild v3.12.2-46

Resolves: bz#1668327 bz#1684648
Signed-off-by: Milind Changire <mchangir@redhat.com>
This commit is contained in:
Milind Changire 2019-03-06 21:40:02 -05:00
parent e0c3417371
commit 75fd41cd04
3 changed files with 155 additions and 1 deletions

View File

@ -0,0 +1,75 @@
From 5b57b686984498eee09ce1a5f27eef6a14e4387e Mon Sep 17 00:00:00 2001
From: Mohit Agrawal <moagrawa@redhat.com>
Date: Wed, 6 Mar 2019 12:55:56 +0530
Subject: [PATCH 533/534] glusterd: glusterd memory leak while running "gluster
v profile" in a loop
Problem: glusterd has memory leak while running "gluster v profile"
in a loop
Solution: Resolve leak code path to avoid leak
> Change-Id: Id608703ff6d0ad34ed8f921a5d25544e24cfadcd
> fixes: bz#1685414
> Cherry pick from commit 9374484917466dff4688d96ff7faa0de1c804a6c
> Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/22301/
Change-Id: I874a0e9947913c201c67b78aaaa982d1fae78b46
BUG: 1684648
Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/164609
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
---
xlators/mgmt/glusterd/src/glusterd-mgmt.c | 5 +++--
xlators/mgmt/glusterd/src/glusterd-syncop.c | 4 +++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/xlators/mgmt/glusterd/src/glusterd-mgmt.c b/xlators/mgmt/glusterd/src/glusterd-mgmt.c
index 275059c..e176288 100644
--- a/xlators/mgmt/glusterd/src/glusterd-mgmt.c
+++ b/xlators/mgmt/glusterd/src/glusterd-mgmt.c
@@ -1380,8 +1380,9 @@ out:
if (rsp.op_errstr)
free (rsp.op_errstr);
- if (rsp.dict.dict_val)
- free (rsp.dict.dict_val);
+ if (rsp_dict)
+ dict_unref (rsp_dict);
+
GF_FREE (peerid);
/* req->rpc_status set to -1 means, STACK_DESTROY will be called from
* the caller function.
diff --git a/xlators/mgmt/glusterd/src/glusterd-syncop.c b/xlators/mgmt/glusterd/src/glusterd-syncop.c
index 7baef64..3b7fa8b 100644
--- a/xlators/mgmt/glusterd/src/glusterd-syncop.c
+++ b/xlators/mgmt/glusterd/src/glusterd-syncop.c
@@ -1707,6 +1707,7 @@ gd_brick_op_phase (glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,
char **op_errstr)
{
glusterd_pending_node_t *pending_node = NULL;
+ glusterd_pending_node_t *tmp = NULL;
struct cds_list_head selected = {0,};
xlator_t *this = NULL;
int brick_count = 0;
@@ -1742,7 +1743,7 @@ gd_brick_op_phase (glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,
rsp_dict = NULL;
brick_count = 0;
- cds_list_for_each_entry (pending_node, &selected, list) {
+ cds_list_for_each_entry_safe (pending_node, tmp, &selected, list) {
rpc = glusterd_pending_node_get_rpc (pending_node);
if (!rpc) {
if (pending_node->type == GD_NODE_REBALANCE) {
@@ -1792,6 +1793,7 @@ gd_brick_op_phase (glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,
brick_count++;
glusterd_pending_node_put_rpc (pending_node);
+ GF_FREE(pending_node);
}
pending_node = NULL;
--
1.8.3.1

View File

@ -0,0 +1,74 @@
From 1454b4a477bf841d6bea610b3bb0b084730d38ab Mon Sep 17 00:00:00 2001
From: Amar Tumballi <amarts@redhat.com>
Date: Fri, 13 Apr 2018 10:28:01 +0530
Subject: [PATCH 534/534] fuse: make sure the send lookup on root instead of
getattr()
This change was done in https://review.gluster.org/16945. While the
changes added there were required, it was not necessary to remove the
getattr part. As fuse's lookup on root(/) comes as getattr only, this
change is very much required.
The previous fix for this bug was to add the check for revalidation in
lookup when it was sent on root. But I had removed the part where
getattr is coming on root. The removing was not requried to fix the
issue then. Added back this part of the code, to make sure we have
proper validation of root inode in many places like acl, etc.
upstream patch: https://review.gluster.org/#/c/glusterfs/+/19867/
> updates: bz#1437780
> Change-Id: I859c4ee1a3f407465cbf19f8934530848424ff50
> Signed-off-by: Amar Tumballi <amarts@redhat.com>
Change-Id: I85af744e7bd1a52367d85d5a5b07c4bdf409a66d
BUG: 1668327
Signed-off-by: N Balachandran <nbalacha@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/164663
Tested-by: RHGS Build Bot <nigelb@redhat.com>
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
---
xlators/mount/fuse/src/fuse-bridge.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index 175e1b8..ffc1013 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -1311,6 +1311,7 @@ fuse_getattr (xlator_t *this, fuse_in_header_t *finh, void *msg,
fuse_private_t *priv = NULL;
#endif
fuse_state_t *state;
+ int ret = -1;
GET_STATE (this, finh, state);
#if FUSE_KERNEL_MINOR_VERSION >= 9
@@ -1318,6 +1319,25 @@ fuse_getattr (xlator_t *this, fuse_in_header_t *finh, void *msg,
if (priv->proto_minor >= 9 && fgi->getattr_flags & FUSE_GETATTR_FH)
state->fd = fd_ref ((fd_t *)fgi->fh);
#endif
+ if (finh->nodeid == 1) {
+ state->gfid[15] = 1;
+
+ ret = fuse_loc_fill (&state->loc, state, finh->nodeid, 0, NULL);
+ if (ret < 0) {
+ gf_log ("glusterfs-fuse", GF_LOG_WARNING,
+ "%"PRIu64": GETATTR on / (fuse_loc_fill() failed)",
+ finh->unique);
+ send_fuse_err (this, finh, ENOENT);
+ free_fuse_state (state);
+ return;
+ }
+
+ fuse_gfid_set (state);
+
+ FUSE_FOP (state, fuse_root_lookup_cbk, GF_FOP_LOOKUP,
+ lookup, &state->loc, state->xdata);
+ return;
+ }
if (state->fd)
fuse_resolve_fd_init (state, &state->resolve, state->fd);
--
1.8.3.1

View File

@ -192,7 +192,7 @@ Release: 0.1%{?prereltag:.%{prereltag}}%{?dist}
%else
Name: glusterfs
Version: 3.12.2
Release: 45%{?dist}
Release: 46%{?dist}
%endif
License: GPLv2 or LGPLv3+
Group: System Environment/Base
@ -797,6 +797,8 @@ Patch0529: 0529-fuse-SETLKW-interrupt.patch
Patch0530: 0530-spec-fix-lua-script-execution-during-install.patch
Patch0531: 0531-fuse-remove-the-duplicate-FUSE_FOP-calls.patch
Patch0532: 0532-dht-fix-double-extra-unref-of-inode-at-heal-path.patch
Patch0533: 0533-glusterd-glusterd-memory-leak-while-running-gluster-.patch
Patch0534: 0534-fuse-make-sure-the-send-lookup-on-root-instead-of-ge.patch
%description
GlusterFS is a distributed file-system capable of scaling to several
@ -2661,6 +2663,9 @@ fi
%endif
%changelog
* Thu Mar 07 2019 Milind Changire <mchangir@redhat.com> - 3.12.2-46
- fixes bugs bz#1668327 bz#1684648
* Thu Feb 21 2019 Milind Changire <mchangir@redhat.com> - 3.12.2-45
- fixes bugs bz#1678232