Bug 1317948

Summary: inode ref leaks with perf-test.sh
Product: [Community] GlusterFS Reporter: Vijay Bellur <vbellur>
Component: fuseAssignee: Vijay Bellur <vbellur>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs, pdhange
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.8rc2 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1317959 (view as bug list) Environment:
Last Closed: 2016-06-16 14:00:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1317959    

Description Vijay Bellur 2016-03-15 15:15:24 UTC
Description of problem:

While running perf-test.sh [1], I observed that the client memory usage was quite high. A statedump revealed that there were inode leaks as deleted inodes with nlookup=0 were present in the active list of the inode table.

xlator.mount.fuse.itable.active_size=600003
xlator.mount.fuse.itable.lru_size=1


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


How reproducible: Always


Steps to Reproduce:

1. touch files from a fuse mount point
2. list files using ls
3. delete files from the mount point
4. check memory usage and inode table usage
5. If there are no leaks, the inode table active size 

Actual results:

Memory and inode leaks are observed.


Expected results:

No memory and inode leaks should be found.

Comment 1 Vijay Bellur 2016-03-15 15:18:24 UTC
REVIEW: http://review.gluster.org/13689 (mount/fuse: cleanup an additional inode_ref()) posted (#3) for review on master by Vijay Bellur (vbellur)

Comment 2 Vijay Bellur 2016-03-16 17:21:09 UTC
COMMIT: http://review.gluster.org/13689 committed in master by Niels de Vos (ndevos) 
------
commit 8fda324df01b6de9c58a1395263ce9755465b26d
Author: Vijay Bellur <vbellur>
Date:   Sun Mar 13 10:44:12 2016 -0400

    mount/fuse: cleanup an additional inode_ref()
    
    commit ca515db0127 introduced a check in
    fuse_resolve_inode_simple(). This results in an additional
    ref being held on inodes which were obtained through readdirp.
    As a result, the inode table keeps growing and entries remain in
    the active list even after deletion of such inodes.
    
    Change-Id: I780ec5513990d6ef00ea051ec57ff20e4428081e
    BUG: 1317948
    Signed-off-by: Vijay Bellur <vbellur>
    Reviewed-on: http://review.gluster.org/13689
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.com>
    Smoke: Gluster Build System <jenkins.com>
    Reviewed-by: Niels de Vos <ndevos>

Comment 3 Niels de Vos 2016-06-16 14:00:28 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.0, please open a new bug report.

glusterfs-3.8.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://blog.gluster.org/2016/06/glusterfs-3-8-released/
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user