Bug 1484391

Summary: [Ganesha] Some memory leak is observed while creating files with ACL enable
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Manisha Saini <msaini>
Component: nfs-ganeshaAssignee: Frank Filz <ffilz>
Status: CLOSED ERRATA QA Contact: Manisha Saini <msaini>
Severity: medium Docs Contact:
Priority: medium    
Version: rhgs-3.3CC: amukherj, dang, jthottan, kkeithle, pasik, rhinduja, rhs-bugs, skoduri, storage-qa-internal
Target Milestone: ---   
Target Release: RHGS 3.5.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nfs-ganesha-2.7.3-3 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-10-30 12:15:39 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:    
Bug Blocks: 1696807    

Description Manisha Saini 2017-08-23 12:34:02 UTC
Description of problem:

On creating 1 Lakh file each of 1KB,some memory leak is observed when ACL is enabled and when ganesha is running via Valgrind.


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

# rpm -qa | grep ganesha
nfs-ganesha-gluster-2.4.4-16.el7rhgs.x86_64
glusterfs-ganesha-3.8.4-41.el7rhgs.x86_64
nfs-ganesha-2.4.4-16.el7rhgs.x86_64


How reproducible:
Ran once with Valgrind


Steps to Reproduce:
1.Create a 4 node ganesha cluster
2.Create 10*2 Distributed-Replicate volume.Export the volume via V4 protocol
3.Mount the volume via v4 on one of the client.
4.Ran ganesha via valgrind on all the 4 nodes
5.Create 1 Lakh file each of 1KB

 #valgrind --leak-check=full --show-leak-kinds=all --trace-children=yes --log-file=vg.out /usr/bin/ganesha.nfsd -L /var/log/ganesha.log -f /etc/ganesha/ganesha.conf -N NIV_EVENT -F

#for i in {1..100000}
do
        echo $i
        dd if=/dev/urandom of=/mnt/ganesha_leak_newBits/ff$i bs=1K count=1
done



Actual results:

With ACL enable,memory leak is been observed which is higher then the leak with ACL disable.This is with 1 LAKH file,might be the leak is higher when more number of files are created with ACL enable.


Valgrind summary with ACL Enable:

==15529== LEAK SUMMARY:
==15529==    definitely lost: 43,242 bytes in 145 blocks
==15529==    indirectly lost: 20,397,643 bytes in 1,707 blocks
==15529==      possibly lost: 2,883,375 bytes in 114 blocks
==15529==    still reachable: 52,251,544 bytes in 3,559 blocks
==15529==         suppressed: 0 bytes in 0 blocks
==15529==


On one of the other node with ACL enable, leak is ~6.6 MB

==20302== LEAK SUMMARY:
==20302==    definitely lost: 6,630,530 bytes in 100,390 blocks
==20302==    indirectly lost: 30,162,781 bytes in 302,025 blocks
==20302==      possibly lost: 42,094,051 bytes in 156,527 blocks
==20302==    still reachable: 52,274,583 bytes in 3,594 blocks
==20302==         suppressed: 0 bytes in 0 blocks



Valgrind summary with ACL disable:

LEAK SUMMARY:
==4369==    definitely lost: 653 bytes in 6 blocks
==4369==    indirectly lost: 718 bytes in 8 blocks
==4369==      possibly lost: 25,350,085 bytes in 2,782 blocks
==4369==    still reachable: 52,453,346 bytes in 3,964 blocks
==4369==         suppressed: 0 bytes in 0 blocks




Expected results:
No Memory leak should not be there

Additional info:

Attaching valgrind summary of all the nodes with ACL Enable and ACL disable.

Comment 5 Kaleb KEITHLEY 2017-09-21 15:19:01 UTC
Is this a different bug than 1481392?

Comment 8 Manisha Saini 2019-09-20 06:35:20 UTC
Verified this BZ with

# rpm -qa | grep ganesha
nfs-ganesha-gluster-2.7.3-7.el7rhgs.x86_64
nfs-ganesha-debuginfo-2.7.3-7.el7rhgs.x86_64
glusterfs-ganesha-6.0-13.el7rhgs.x86_64
nfs-ganesha-2.7.3-7.el7rhgs.x86_64


Steps for verification:
1.Create a 4 node ganesha cluster
2.Create 8 x 3 Distributed-Replicate volume.Export the volume via ganesha
3.Edit volume export file and enable ACL for volume
4.Run refresh-config
5.Mount the volume via v4.0 on one of the client.
6.Ran ganesha via valgrind on all the 4 nodes
7.Create 1 Lakh file each of 1KB


#for i in {1..100000}
do
        echo $i
        dd if=/dev/urandom of=/mnt/ganesha_leak_newBits/ff$i bs=1K count=1
done



==26504== LEAK SUMMARY:
==26504==    definitely lost: 0 bytes in 0 blocks
==26504==    indirectly lost: 0 bytes in 0 blocks
==26504==      possibly lost: 0 bytes in 0 blocks
==26504==    still reachable: 411 bytes in 13 blocks
==26504==         suppressed: 0 bytes in 0 blocks
==26504== Reachable blocks (those to which a pointer was found) are not shown.
==26504== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==26504== 
==26504== For counts of detected and suppressed errors, rerun with: -v
==26504== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)


No memory leaks were observed.Moving this BZ to verified state

Comment 10 errata-xmlrpc 2019-10-30 12:15:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:3252