Bug 1412995

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.7.18CC: 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 10:48:49 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:05:27 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:15:31 UTC
REVIEW: http://review.gluster.org/16404 (fuse: fix memory leak in setxattr) posted (#1) for review on release-3.7 by Xavier Hernandez (xhernandez)

Comment 2 Kaushal 2017-03-08 10:48:49 UTC
This bug is getting closed because GlusteFS-3.7 has reached its end-of-life.

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 reopen this bug against the newer release.