[Bugs] [Bug 1311441] New: Fix mem leaks related to gfapi applications

bugzilla at redhat.com bugzilla at redhat.com
Wed Feb 24 09:28:56 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1311441

            Bug ID: 1311441
           Summary: Fix mem leaks related to gfapi applications
           Product: GlusterFS
           Version: 3.7.9
         Component: libgfapi
          Keywords: Triaged
          Severity: medium
          Assignee: bugs at gluster.org
          Reporter: skoduri at redhat.com
        QA Contact: sdharane at redhat.com
                CC: bugs at gluster.org, sdharane at redhat.com
        Depends On: 1295107
            Blocks: 1240172, 1300924



+++ This bug was initially created as a clone of Bug #1295107 +++

Description of problem:

This bug is to track the changes required to fix mem leaks related to gfapi
applications.

--- Additional comment from Vijay Bellur on 2016-01-04 09:22:51 EST ---

REVIEW: http://review.gluster.org/13125 (inode: Retire the inodes from the lru
list in inode_table_destroy) posted (#2) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-01-05 00:51:37 EST ---

REVIEW: http://review.gluster.org/13096 (gfapi: Fix inode reference/nlookup
counts) posted (#3) for review on master by soumya k (skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-01-11 05:23:23 EST ---

REVIEW: http://review.gluster.org/13096 (gfapi: Fix inode nlookup counts)
posted (#4) for review on master by soumya k (skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-01-13 01:13:14 EST ---

REVIEW: http://review.gluster.org/13232 (upcall: free the xdr* allocations)
posted (#1) for review on master by soumya k (skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-01-14 06:39:27 EST ---

COMMIT: http://review.gluster.org/13232 committed in master by Kaleb KEITHLEY
(kkeithle at redhat.com) 
------
commit 7d6e5dad15b7ecf2e8abce468aea9fd84b876052
Author: Soumya Koduri <skoduri at redhat.com>
Date:   Wed Jan 13 11:34:27 2016 +0530

    upcall: free the xdr* allocations

    Free the xdr string allocations after decoding the upcall
    cache_invalidation request.

    Change-Id: I0ffc64f587d6c8566cba76cf08148f937a735926
    BUG: 1295107
    Signed-off-by: Soumya Koduri <skoduri at redhat.com>
    Reviewed-on: http://review.gluster.org/13232
    Reviewed-by: Niels de Vos <ndevos at redhat.com>
    Tested-by: NetBSD Build System <jenkins at build.gluster.org>
    Reviewed-by: Kaleb KEITHLEY <kkeithle at redhat.com>

--- Additional comment from Vijay Bellur on 2016-02-01 02:33:26 EST ---

REVIEW: http://review.gluster.org/13125 (inode: Retire the inodes from the lru
list in inode_table_destroy) posted (#3) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-08 06:03:48 EST ---

REVIEW: http://review.gluster.org/13125 (inode: Retire the inodes from the lru
list in inode_table_destroy) posted (#4) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-08 12:26:39 EST ---

REVIEW: http://review.gluster.org/13125 (inode: Retire the inodes from the lru
list in inode_table_destroy) posted (#5) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-08 12:26:42 EST ---

REVIEW: http://review.gluster.org/13096 (gfapi: Use inode_forget in case of
handle objects) posted (#5) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-16 08:25:11 EST ---

REVIEW: http://review.gluster.org/13125 (inode: Retire the inodes from the lru
list in inode_table_destroy) posted (#6) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-16 08:25:14 EST ---

REVIEW: http://review.gluster.org/13096 (gfapi: Use inode_forget in case of
handle objects) posted (#6) for review on master by soumya k
(skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-16 08:25:17 EST ---

REVIEW: http://review.gluster.org/13456 (rpc: Fix for rpc_transport_t  leak)
posted (#1) for review on master by soumya k (skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-20 07:47:36 EST ---

REVIEW: http://review.gluster.org/13456 (rpc: Fix for rpc_transport_t leak)
posted (#2) for review on master by soumya k (skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-22 01:59:45 EST ---

REVIEW: http://review.gluster.org/13456 (rpc: Fix for rpc_transport_t leak)
posted (#3) for review on master by soumya k (skoduri at redhat.com)

--- Additional comment from Vijay Bellur on 2016-02-23 21:51:17 EST ---

COMMIT: http://review.gluster.org/13096 committed in master by Kaleb KEITHLEY
(kkeithle at redhat.com) 
------
commit db747eba347e2909f4fb4fc28a67adb8f188586a
Author: Soumya Koduri <skoduri at redhat.com>
Date:   Mon Feb 8 22:33:56 2016 +0530

    gfapi: Use inode_forget in case of handle objects

    Currently with gfapi, even if applications release their
    reference on paritular inode entries, those entries never
    get destroyed as they shall always have positive nlookup
    count unless inode_table exceeds lru limit.

    Since inodes and their contexts can consume considerable
    amount of memory, applications may end up consuming lot of
    memory and may even get OOM killed.

    To avoid that, have considered below approaches (for handle based access)-
    a) Do 'inode_lookup' only if the corresponding inode is created
    for the first time and forget it during close of the handle

    This shall not work as multiple handle objects can refer to
    same inode entry and inode_forget from second handle object
    onwards shall result in assert.

    b) Do 'inode_lookup' during a handle or fd creation

    But this approach shall affect the performance of the fops which
    operate on neither handle nor fd.

    c) current approach taken-
    Applications using glfs handle objects hold a reference
    on corresponding inode entries. Hence it is safe to forget
    those inodes and make nlookup count to '0' while trying to
    delete those handle objects. That way the last unref (i.e,
    from the last handle close) shall result in inode_destroy().

    Change-Id: Id2c7ab178894a10c0030c143ba71e7813df8d18c
    Signed-off-by: Soumya Koduri <skoduri at redhat.com>
    BUG: 1295107
    Reviewed-on: http://review.gluster.org/13096
    Reviewed-by: jiffin tony Thottan <jthottan at redhat.com>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    Reviewed-by: Niels de Vos <ndevos at redhat.com>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.com>
    Smoke: Gluster Build System <jenkins at build.gluster.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle at redhat.com>

--- Additional comment from Vijay Bellur on 2016-02-23 23:15:29 EST ---

COMMIT: http://review.gluster.org/13456 committed in master by Jeff Darcy
(jdarcy at redhat.com) 
------
commit 8cf29a4207c162be8e2993ae36f49090851cbbfc
Author: Soumya Koduri <skoduri at redhat.com>
Date:   Tue Feb 16 18:50:23 2016 +0530

    rpc: Fix for rpc_transport_t leak

    The transport object needs to get unref'ed when the rpc clnt
    object is getting destroyed. But currently in rpc_clnt_disable()
    we set conn->trans to NULL before it gets unref'ed leading to
    transport object leak.

    This change is to fix it by setting conn-tran to NULL only when
    it is being unref'ed.

    Change-Id: I79ba34e28ae19eb616035f36bbed1c2f47875b94
    BUG: 1295107
    Signed-off-by: Soumya Koduri <skoduri at redhat.com>
    Reviewed-on: http://review.gluster.org/13456
    Smoke: Gluster Build System <jenkins at build.gluster.com>
    NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins at build.gluster.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle at redhat.com>
    Reviewed-by: Jeff Darcy <jdarcy at redhat.com>

--- Additional comment from Vijay Bellur on 2016-02-23 23:53:04 EST ---

REVIEW: http://review.gluster.org/13125 (inode: Retire the inodes from the lru
list in inode_table_destroy) posted (#7) for review on master by soumya k
(skoduri at redhat.com)


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1240172
[Bug 1240172] nfs-ganesha: OOM kill of nfs-ganesha process on all nodes
while executing iozone
https://bugzilla.redhat.com/show_bug.cgi?id=1295107
[Bug 1295107] Fix mem leaks related to gfapi applications
https://bugzilla.redhat.com/show_bug.cgi?id=1300924
[Bug 1300924] Fix mem leaks related to gfapi applications
-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list