Bug 1412992

Summary: Memory leak on mount/fuse when setxattr fails
Product: [Community] GlusterFS Reporter: Xavi Hernandez <jahernan>
Component: fuseAssignee: Xavi Hernandez <jahernan>
Status: CLOSED EOL QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.9CC: bugs
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1412174 Environment:
Last Closed: 2017-03-08 12:31:51 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: 1412174    
Bug Blocks:    

Description Xavi Hernandez 2017-01-13 11:02:52 UTC
+++ This bug was initially created as a clone of Bug #1412174 +++

Description of problem:

When the setxattr fails for some extended attributes, fuse leaks memory.

This can happen if you try to set 'system.posix_acl_access' but gluster doesn't have acl's enabled.

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


How reproducible:

Always

Steps to Reproduce:
1. gluster volume create test server:/brick
2. mount -t glusterfs server:/test /test
3. touch /test/file
4. for i in {1..100000}; do setfattr -n system.posix_acl_access -v "1" /test/file; done

Actual results:

Doing a state dump, a leak of fuse_state_t structures is seen.

Expected results:

No leak should happen.

Additional info:

It seems that the state is not released after having been allocated if a pre-op check fails.

--- Additional comment from Worker Ant on 2017-01-12 09:52:27 CET ---

REVIEW: http://review.gluster.org/16380 (fuse: fix memory leak in setxattr) posted (#1) for review on master by Xavier Hernandez (xhernandez)

--- Additional comment from Worker Ant on 2017-01-12 09:59:40 CET ---

REVIEW: http://review.gluster.org/16380 (fuse: fix memory leak in setxattr) posted (#2) for review on master by Xavier Hernandez (xhernandez)

--- Additional comment from Worker Ant on 2017-01-12 20:03:14 CET ---

COMMIT: http://review.gluster.org/16380 committed in master by Jeff Darcy (jdarcy) 
------
commit 79b3fb6e8d3c9d681917be6e6c9f6ba04eb73f82
Author: Xavier Hernandez <xhernandez>
Date:   Thu Jan 12 08:38:50 2017 +0100

    fuse: fix memory leak in setxattr
    
    If there's some failed check in setxattr of mount/fuse before
    actually starting the operation, a fuse_state_t structure is
    leaked.
    
    This fix correctly releases allocated resources in case of
    error.
    
    Change-Id: I8b1cda67a613c13b6bc38947352e2ccfccf96a1d
    BUG: 1412174
    Signed-off-by: Xavier Hernandez <xhernandez>
    Reviewed-on: http://review.gluster.org/16380
    Smoke: Gluster Build System <jenkins.org>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Niels de Vos <ndevos>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Jeff Darcy <jdarcy>

Comment 1 Worker Ant 2017-01-13 11:08:13 UTC
REVIEW: http://review.gluster.org/16402 (fuse: fix memory leak in setxattr) posted (#1) for review on release-3.9 by Xavier Hernandez (xhernandez)

Comment 2 Kaushal 2017-03-08 12:31:51 UTC
This bug is getting closed because GlusterFS-3.9 has reached its end-of-life [1].

Note: This bug is being closed using a script. No verification has been performed to check if it still exists on newer releases of GlusterFS.
If this bug still exists in newer GlusterFS releases, please open a new bug against the newer release.

[1]: https://www.gluster.org/community/release-schedule/