Bug 1317959

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: 3.7.8CC: bugs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.7.9 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1317948 Environment:
Last Closed: 2016-04-19 07:20:19 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: 1317948    
Bug Blocks: 1309567    

Description Vijay Bellur 2016-03-15 15:35:10 UTC
+++ This bug was initially created as a clone of Bug #1317948 +++

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.

--- Additional comment from Vijay Bellur on 2016-03-15 11:18:24 EDT ---

REVIEW: http://review.gluster.org/13689 (mount/fuse: cleanup an additional inode_ref()) posted (#3) for review on master by Vijay Bellur (vbellur)

Comment 1 Vijay Bellur 2016-03-16 02:26:23 UTC
REVIEW: http://review.gluster.org/13745 (mount/fuse: cleanup an additional inode_ref()) posted (#1) for review on release-3.7 by Vijay Bellur (vbellur)

Comment 2 Vijay Bellur 2016-03-16 18:52:47 UTC
REVIEW: http://review.gluster.org/13745 (mount/fuse: cleanup an additional inode_ref()) posted (#2) for review on release-3.7 by Vijay Bellur (vbellur)

Comment 3 Vijay Bellur 2016-03-17 20:05:26 UTC
COMMIT: http://review.gluster.org/13745 committed in release-3.7 by Raghavendra Bhat (raghavendra) 
------
commit 1eece065f1379bf08af839bae626ae701ccd91b0
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 from the volume.
    
    Change-Id: I780ec5513990d6ef00ea051ec57ff20e4428081e
    BUG: 1317959
    Signed-off-by: Vijay Bellur <vbellur>
    Reviewed-on: http://review.gluster.org/13745
    Smoke: Gluster Build System <jenkins.com>
    CentOS-regression: Gluster Build System <jenkins.com>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Raghavendra Bhat <raghavendra>

Comment 4 Mike McCune 2016-03-28 23:43:17 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions

Comment 5 Kaushal 2016-04-19 07:20:19 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.7.9, please open a new bug report.

glusterfs-3.7.9 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] https://www.gluster.org/pipermail/gluster-users/2016-March/025922.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user