[Gluster-devel] rm -r problem on FreeBSD port

Raghavendra Gowdappa rgowdapp at redhat.com
Tue Jan 19 04:08:29 UTC 2016



----- Original Message -----
> From: "Rick Macklem" <rmacklem at uoguelph.ca>
> To: "Gluster Devel" <gluster-devel at gluster.org>
> Sent: Tuesday, January 19, 2016 4:48:21 AM
> Subject: [Gluster-devel] rm -r problem on FreeBSD port
> 
> Hi,
> 
> I have a simple gluster volume made up of 2 bricks using
> distribute (running on the FreeBSD port of 3.7.6).
> When I do a "rm -rf <dir>" for a fairly large tree, I
> sometimes get "Directory not empty" errors.
> When I look in the directory (even after an unmount, shutdown,
> restart, remount) the "ls -l" output for the fuse mounted
> volume and the 2 underlying bricks looks like...
> 
> # ls -l of fuse mounted gv0: directory
> 
> total 1
> ----------  1 root  wheel  345891 Jan 18 14:49 Makefile
> ----------  1 root  wheel  345891 Jan 18 14:49 Makefile
> ----------  1 root  wheel    1195 Jan 18 14:49 ata_if.c
> ----------  1 root  wheel    1195 Jan 18 14:49 ata_if.c
> ----------  1 root  wheel     576 Jan 18 14:49 fb_if.c
> ----------  1 root  wheel     576 Jan 18 14:49 fb_if.c
> ----------  1 root  wheel    1787 Jan 18 14:49 hdac_if.c
> ----------  1 root  wheel    1787 Jan 18 14:49 hdac_if.c
> ----------  1 root  wheel     753 Jan 18 14:49 mmcbus_if.c
> ----------  1 root  wheel     753 Jan 18 14:49 mmcbus_if.c
> drwxr-xr-x  3 root  wheel     512 Jan 14 12:34 modules
> ----------  1 root  wheel     602 Jan 18 14:49 power_if.c
> ----------  1 root  wheel     602 Jan 18 14:49 power_if.c
> ----------  1 root  wheel    1819 Jan 18 14:49 uart_if.c
> ----------  1 root  wheel    1819 Jan 18 14:49 uart_if.c
> 
> # ls -l of the directory in one of the 2 bricks
> 
> total 36
> ----------  2 root  wheel    0 Jan 18 14:49 Makefile
> ----------  2 root  wheel    0 Jan 18 14:49 ata_if.c
> ----------  2 root  wheel    0 Jan 18 14:49 fb_if.c
> ----------  2 root  wheel    0 Jan 18 14:49 hdac_if.c
> ----------  2 root  wheel    0 Jan 18 14:49 mmcbus_if.c
> drwxr-xr-x  3 root  wheel  512 Jan 14 17:34 modules
> ----------  2 root  wheel    0 Jan 18 14:49 power_if.c
> ----------  2 root  wheel    0 Jan 18 14:49 uart_if.c
> 
> # and ls -l of the underlying directory in the other brick
> 
> total 400
> -rw-r--r--  2 root  wheel  345891 Jan 14 11:50 Makefile
> -rw-r--r--  2 root  wheel    1195 Jan 14 13:19 ata_if.c
> -rw-r--r--  2 root  wheel     576 Jan 14 12:13 fb_if.c
> -rw-r--r--  2 root  wheel    1787 Jan 14 12:13 hdac_if.c
> -rw-r--r--  2 root  wheel     753 Jan 14 12:13 mmcbus_if.c
> drwxr-xr-x  3 root  wheel     512 Jan 14 12:34 modules
> -rw-r--r--  2 root  wheel     602 Jan 14 12:13 power_if.c
> -rw-r--r--  2 root  wheel    1819 Jan 14 12:13 uart_if.c
> 
> Anyone have an idea of what is causing this?

There is a similar known issue explained in bz:
https://bugzilla.redhat.com/show_bug.cgi?id=1245065

However as per our understanding, the contents of the directory whose rmdir failed with ENOTEMPTY should be _only_ empty directories. In your case there are non-directories. So, it might be a different issue.

Adding Sakshi, who is working on this class of bugs and might add something worthwhile.

> (I am thinking something like the FreeBSD fuse interface
>  is holding opens on the files when I am doing "rm -rf <dir>",
>  even though they shouldn't be open and the GlusterFS is doing
>  some trickery similar to NFS's silly rename to avoid the
>  files being removed before being closed?
>  But I have no idea if this theory holds any water.;-)
> 
> Thanks in advance for any hints, rick
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel
> 


More information about the Gluster-devel mailing list