Bug 801582 - ACL memory leak
Summary: ACL memory leak
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Gluster Storage
Classification: Red Hat Storage
Component: glusterfs
Version: 2.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: Beta
: ---
Assignee: Brian Foster
QA Contact: Anush Shetty
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-03-08 22:10 UTC by Brian Foster
Modified: 2015-08-10 07:46 UTC (History)
4 users (show)

Fixed In Version: glusterfs-3.4.0qa2-1
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-08-10 07:46:49 UTC
Embargoed:


Attachments (Terms of Use)

Description Brian Foster 2012-03-08 22:10:06 UTC
Description of problem:

A memory leak occurs when ACLs are continuously removed and re-added.

Version-Release number of selected component (if applicable): Upstream.

How reproducible: 100%

Steps to Reproduce:
1. Mount a gluster volume with ACLs enabled.
2. Create a file.
3. Run the following command on the file:

while [ true ]
do 
        setfacl -x u:test /mnt/test
        setfacl -m u:test:r /mnt/test
done

4. Run 'top -p <pidofglusterfs>' and observe RES.
  
Actual results: Resident set size increases to consume all memory.

Expected results: RSS remains stable.

Comment 1 Amar Tumballi 2012-03-21 10:45:34 UTC
Brian, does your patch to upstream fix the issue? should this be moved to "ON_QA"?

Comment 2 Brian Foster 2012-03-21 12:00:56 UTC
Amar,

Unfortunately no, this is a separate issue. I ran this test before (to make sure I wasn't introducing the problem) and after the refcount change and still saw increasing RSS.

Comment 3 Brian Foster 2012-03-21 12:13:29 UTC
To be precise, I should also point out I don't have any evidence to suggest that the memory leak here is necessarily in the ACL code...

Comment 4 Brian Foster 2012-04-12 20:11:04 UTC
I found and resolved a similar leak reproducible as follows:

while [ true ]
do 
        getfattr -n user.test /mnt/test
done

I then determined the root cause is the same for this bug. The root cause is an extra dict_ref() inside of mdc_inode_xatt_update() in md-cache. Posting a fix shortly...

Comment 5 Brian Foster 2012-04-12 20:30:02 UTC
http://review.gluster.com/3138

Comment 6 Anand Avati 2012-04-12 21:21:46 UTC
CHANGE: http://review.gluster.com/3138 (md-cache: fix dict memory leak in mdc_inode_xatt_update) merged in master by Anand Avati (avati)

Comment 8 Anush Shetty 2013-08-07 11:03:37 UTC
Verified with glusterfs-3.4.0.17rhs-1.el6rhs.x86_64


Note You need to log in before you can comment on or make changes to this bug.