Bug 805009

Summary: [glusterfs-3.3.0qa30] - Unable to delete ('rm -rf') a directory on the mountpoint.
Product: [Community] GlusterFS Reporter: M S Vishwanath Bhat <vbhat>
Component: distributeAssignee: shishir gowda <sgowda>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: pre-releaseCC: amarts, gluster-bugs, mzywusko, nsathyan
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-11 04:05:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description M S Vishwanath Bhat 2012-03-20 12:40:47 UTC
Description of problem:
I'm unable to delete a directory. rm -rf on thar directory is giving directory not empty errors.

The volume is 2*3 distributed-replicated. When I checked in backend one subvolume of dht had another dir in the dir specified whereas other subvolume didn't.

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

How reproducible:
Inconsitent

Steps to Reproduce:
1. Create and start a 2*3 dist-rep volume.
2. Run some i/o like run fs-perf-test from a fuse mount and fileop from fusemount. Run iozone and dd and other tests from nfs mount etc etc.
3. take down two of three replicate subvolume in one dht subvolume and other 1 replicate subvolume in another dht subvolume.
4. Bring them back-up after sometime.
5. run rm -rf * from mountpoint.
  
Actual results:
[root@QA-23 glusterfs]# ls
fileop_L1_19
[root@QA-23 glusterfs]# rm -rf fileop_L1_19/
rm: cannot remove `fileop_L1_19/fileop_L1_19_L2_15': Directory not empty


Expected results:
rm -rf * should delete all files from the mountpoint.

Additional info:

As I mentioned out of two dht subvolumes, one had some files in "fileop_L1_19/fileop_L1_19_L2_15" whereas other dht subvolume didn't have any files in them.

Archiving all the logs.

Comment 1 shishir gowda 2012-03-21 10:15:06 UTC
This seems to be an issue in dht_readdirp.
Because the first subvol, does not have the complete dir hierarchy, we are not getting the complete entry list (as dir entries from other subvols are ignored). dir self heal is also not triggered as dir entries from non-first subvols are ignored in readdirp.

Comment 2 Amar Tumballi 2012-05-10 06:15:38 UTC
we need to handle this with a proper script (out side of glusterfs codebase) to fix the situation.

Comment 3 Amar Tumballi 2012-05-17 12:42:01 UTC
with bug 773187 getting fixed, this is no longer a blocker for the 3.3.0 release.

Comment 4 Amar Tumballi 2012-07-11 04:05:41 UTC
With all users adhering to best practise (ie, making sure all data access will happen through gluster mount/gluster-nfs), this issue won't happen anymore. Hence we are not working on it actively. If someone hits the issue please re-open this.

As bug 773187 got fixed in 3.3.0 release, will be closing it with resolution closed currentrelease.