[Gluster-devel] how do you debug ref leaks?

Pranith Kumar Karampuri pkarampu at redhat.com
Thu Sep 18 02:13:00 UTC 2014

     Till now the only method I used to find ref leaks effectively is to 
find what operation is causing ref leaks and read the code to find if 
there is a ref-leak somewhere. Valgrind doesn't solve this problem 
because it is reachable memory from inode-table etc. I am just wondering 
if there is an effective way anyone else knows of. Do you guys think we 
need a better mechanism of finding refleaks? At least which decreases 
the search space significantly i.e. xlator y, fop f etc? It would be 
better if we can come up with ways to integrate statedump and this infra 
just like we did for mem-accounting.

One way I thought was to introduce new apis called 
xl_fop_dict/inode/fd_ref/unref (). Each xl keeps an array of num_fops 
per inode/dict/fd and increments/decrements accordingly. Dump this info 
on statedump.

I myself am not completely sure about this idea. It requires all xlators 
to change.

Any ideas?


More information about the Gluster-devel mailing list