Description of problem: At the moment, synctask uses task->frame to perform all the syncops, this will lead to high-memory usage if the task crawls millions of directories. i.e millions of STACK_WINDS/UNWINDS. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
patch submitted already... yet to be merged
CHANGE: http://review.gluster.com/2850 (syncop: Make syntask scalable) merged in master by Vijay Bellur (vijay)
CHANGE: http://review.gluster.com/2902 (libglusterfs: Destroy stack_lock in STACK_DESTROY) merged in release-3.2 by Anand Avati (avati)
Test case:- ------------ 1. create a replicate volume(1x3) 2. bring down 2 bricks 3. Create fuse/nfs mount 4. Create files ( 1 million files. files of different sizes ) 5. Bring back the bricks. 6. execute "gluster volume heal <volume_name> full" Expected Output:- ----------------------- The memory consumption by glustershd process should not shoot up.
Verified the fix on 3.3.0qa45. Bug is fixed.