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.
Brian, does your patch to upstream fix the issue? should this be moved to "ON_QA"?
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.
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...
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...
http://review.gluster.com/3138
CHANGE: http://review.gluster.com/3138 (md-cache: fix dict memory leak in mdc_inode_xatt_update) merged in master by Anand Avati (avati)
Verified with glusterfs-3.4.0.17rhs-1.el6rhs.x86_64