[Gluster-devel] Need inputs for fixing 866908
Pranith Kumar Karampuri
pkarampu at redhat.com
Wed Dec 12 08:39:54 UTC 2012
gluster volume heal <vol_name> info" command outputs entries which are in ".glusterfs" and ".landfill" directory
Reason for the issue:
Whenever a brick is restarted and self-heal has to remove a directory 'dir' it sets a flag indicating in rmdir fop that it is 'rm -rf'. The 'dir' is moved to '.glusterfs/landfill' by posix because of the flags in rmdir fop, Janitor thread removes it asynchronously. gfid-handles exists for 'dir' and files under 'dir' until the janitor thread deletes them from landfill. Janitor thread is run every 10 minutes. Self-heald depends on gfid-handle presence to determine that a file exists in the filesystem. Because of this behaviour, stale entries show up in the output of 'gluster volume heal <volname> info'. The issue is transient, after 10 minutes the stale entries won't show up in the output. One way to fix it is by waking up Janitor thread as soon as an rmdir fop comes with a special flag indicating that rm -rf needs to happen inside landfill. We can even close the issue documenting the behaviour as known issue. Let me know your inputs.
More information about the Gluster-devel