Bug 1473191 - mem-pool: mem_pool_fini() doesn't release entire memory allocated
mem-pool: mem_pool_fini() doesn't release entire memory allocated
Status: POST
Product: Red Hat Gluster Storage
Classification: Red Hat
Component: core (Show other bugs)
3.3
All All
unspecified Severity high
: ---
: ---
Assigned To: Niels de Vos
Rahul Hinduja
:
Depends On: 1470170
Blocks: 1196020
  Show dependency treegraph
 
Reported: 2017-07-20 04:20 EDT by Niels de Vos
Modified: 2017-09-01 07:32 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Niels de Vos 2017-07-20 04:20:24 EDT
Description of problem:

At the moment, all the work which mem_pool_fini() does is to exit and cleanup the sweeper thread. That doesn't ensure that all the memory allocated is cleaned up as some of those allocations may still be in hot list or if in cold list, sweeper thread may not have got chance to run through them.
hence we need to iterate though all those per-thread mem-pools and clean them up as part of mem_pools_fini().

This is mainly important for applications where glfs_init() and glfs_fini() can be called a number of times during the application runtime (NFS-Ganesha, QEMU, libvirt, ...).

Version-Release number of selected component (if applicable):
any version that support brick-multiplexing (which sneaked in new mem-pools)

How reproducible:
100%

Steps to Reproduce:
1. call glfs_init() and glfs_fini() in an application running under Valgrind
2. notice the major increase in memory leaks related to mem_get()

Actual results:
There are known memory leaks in libglusterfs (that is used by all Gluster executables). But the brick-multiplex feature increased the number of leaks significantly.

Expected results:
No increase in memory leaks (ideally the number of leaks compared to previous versions would be reduced).

Additional info:
The series of patches that makes sure to release the allocated memory when mem_pools_fini() is called can be found at https://review.gluster.org/#/q/topic:bug-1470170
Comment 3 Atin Mukherjee 2017-07-20 09:14:13 EDT
upstream patch(es) : https://review.gluster.org/#/q/topic:bug-1470170

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