Inode and dentry leaks in RHGS
Issue
The files and directories in GlusterFS (both server and the native fuse client) are represented by inodes and dentries inside memory. Each file or directory operation is converted into an operation on an inode (and a dentry associated with it).
The inodes and dentries in the glusterfs client are removed from memory upon either of two conditions:
- The file or the directory is removed (via unlink or rmdir)
- The kernel tries to free some memory by removing some in-memory inodes, which results in a “forget” on the inode
Sometimes, one of the components in the GlusterFS fuse client can hold an extra reference to the inode and thus avoid freeing of the inode, even if the file/directory associated with it is removed or if a forget comes on that inode from the kernel.
This will lead to a inode and dentry leak, causing more memory to be consumed by the process. It is a memory leak.
Environment
- RHGS-3.1.0
- RHGS-3.1.1
- RHGS-3.1.2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
