Bug 1412994 - Memory leak on mount/fuse when setxattr fails
Summary: Memory leak on mount/fuse when setxattr fails
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: fuse
Version: 3.8
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Xavi Hernandez
QA Contact:
URL:
Whiteboard:
Depends On: 1412174
Blocks: glusterfs-3.8.10
TreeView+ depends on / blocked
 
Reported: 2017-01-13 11:04 UTC by Xavi Hernandez
Modified: 2017-03-18 10:52 UTC (History)
1 user (show)

Fixed In Version: glusterfs-3.8.10
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1412174
Environment:
Last Closed: 2017-03-18 10:52:09 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)

Description Xavi Hernandez 2017-01-13 11:04:26 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.

Comment 1 Worker Ant 2017-01-13 11:11:27 UTC
REVIEW: http://review.gluster.org/16403 (fuse: fix memory leak in setxattr) posted (#1) for review on release-3.8 by Xavier Hernandez (xhernandez@datalab.es)

Comment 2 Worker Ant 2017-03-10 22:28:14 UTC
COMMIT: https://review.gluster.org/16403 committed in release-3.8 by Niels de Vos (ndevos@redhat.com) 
------
commit b0f1fce00f2b3c86077c88dff85ff99f3263b60b
Author: Xavier Hernandez <xhernandez@datalab.es>
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@datalab.es>
    > Reviewed-on: http://review.gluster.org/16380
    > Smoke: Gluster Build System <jenkins@build.gluster.org>
    > NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
    > Reviewed-by: Niels de Vos <ndevos@redhat.com>
    > CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
    > Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
    
    Change-Id: I7e838f8284aa2aca2e43067a4b002e8530ad928d
    BUG: 1412994
    Signed-off-by: Xavier Hernandez <xhernandez@datalab.es>
    Reviewed-on: https://review.gluster.org/16403
    Smoke: Gluster Build System <jenkins@build.gluster.org>
    NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
    CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
    Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
    Reviewed-by: Niels de Vos <ndevos@redhat.com>

Comment 3 Niels de Vos 2017-03-18 10:52:09 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.10, please open a new bug report.

glusterfs-3.8.10 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://lists.gluster.org/pipermail/announce/2017-March/000068.html
[2] https://www.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.