Sorry for the late reply.

On 4/16/2017 22:31, Vijay Bellur wrote:
> 
> 
> On Wed, Apr 12, 2017 at 10:37 PM, Kinglong Mee <mijinl...@open-fs.com 
> <mailto:mijinl...@open-fs.com>> wrote:
> 
>     Yes, this one is silly rename,
> 
>     >>> rm: cannot remove 
> ‘/mnt/nfs/ltp-JEYAuky2dz/.nfsaa46457a6a72f8ea000014f5’: Device or resource 
> busy
> 
>     But, the other one isn't client's silly rename,
> 
>     >>>>     rm: cannot remove ‘/mnt/nfs/ltp-JEYAuky2dz/rmderQsjV’: Directory 
> not empty
> 
>     Also, the second one often appears when testing ganesha nfs by ltp.
> 
>     I try to get an tcpdump, I found, when ls under the nfs client directory,
> 
>     the glusterfs client doesn't send readdir to glusterfs server, so that,
>     the nfs client gets an empty directory information, but it's empty 
> underlying.
> 
>     ls at some other directory,
>     the glusterfs client send readdir to glusterfs server, nfs client gets 
> right dirctory
>     information as the underlying.
> 
>     So, I guess maybe there are some problems in MDCHANE or glusterfs client?
> 
>     ]# cat /var/lib/glusterd/vols/gvtest/trusted-gvtest.tcp-fuse.vol
>     volume gvtest-client-0
>         type protocol/client
>         option send-gids true
>         option password d80765c8-95ae-46ed-912a-0c98fdd1e7cd
>         option username 7bc6276f-245c-477a-99d0-7ead4fcb2968
>         option transport.address-family inet
>         option transport-type tcp
>         option remote-subvolume /gluster-test/gvtest
>         option remote-host 192.168.9.111
>         option ping-timeout 42
>     end-volume
> 
>     volume gvtest-client-1
>         type protocol/client
>         option send-gids true
>         option password d80765c8-95ae-46ed-912a-0c98fdd1e7cd
>         option username 7bc6276f-245c-477a-99d0-7ead4fcb2968
>         option transport.address-family inet
>         option transport-type tcp
>         option remote-subvolume /gluster-test/gvtest
>         option remote-host 192.168.9.111
>         option ping-timeout 42
>     end-volume
> 
>     volume gvtest-dht
>         type cluster/distribute
>         option lock-migration off
>         subvolumes gvtest-client-0 gvtest-client-1
>     end-volume
> 
>     volume gvtest
>         type debug/io-stats
>         option count-fop-hits off
>         option latency-measurement off
>         option log-level INFO
>         subvolumes gvtest-dht
>     end-volume
> 
> 
> 
> 
> Have you checked the gluster export directories after receiving ENOTEMPTY? If 
> you observe any files there, can you please check if they are 0-byte files 
> with access mode 600 and sticky bit set? 
> 

No.
I have check those files at the latest test.

rm: cannot remove ‘/mnt/nfs/ltp-fpeUthdR0W/rmdVGrwdj’: Directory not empty

The back-end directory,
# ll /gvtest/ltp-fpeUthdR0W/
total 264
drwxrwxrwx 2 root root 253952 Apr 20 15:53 fann7LHNa
drwxrwxrwx 2 root root   4096 Apr 20 15:54 inop4q8Wi
drwxrwxrwx 3 root root   4096 Apr 20 15:58 linu6YVST
drwxrwxrwx 3 root root   4096 Apr 20 15:59 rmdVGrwdj
# ll /gvtest/ltp-fpeUthdR0W/rmdVGrwdj/testdir/
total 0

The nfs client directory mounted through ganesha.nfsd, 
# ll /mnt/nfs/ltp-fpeUthdR0W/
total 12
drwxrwxrwx 2 root root 4096 Apr 20 15:53 fann7LHNa
drwxrwxrwx 2 root root 4096 Apr 20 15:54 inop4q8Wi
drwxrwxrwx 3 root root 4096 Apr 20 15:58 linu6YVST
# ll /mnt/nfs/ltp-fpeUthdR0W/rmdVGrwdj/
total 4
drwxrwxrwx 2 root root 4096 Apr 20 15:59 testdir
[root@C0N1 ~]# ll /mnt/nfs/ltp-fpeUthdR0W/rmdVGrwdj/testdir/
total 0
-rwxrwxrwx 1 root root 0 Apr 20 15:59 testfile

1. nfs client can't get "rmdVGrwdj" when ll the upper directory,
2. but nfs client can access it by name directly,
3. A "testfile" under nfs client's "rmdVGrwdj/testdir",
   but it's empty in the back-end gluster filesystem.
4. after ltp's rm finish, a duplicate rm can remove "rmdVGrwdj".

So, I guess there are some problem of the ganesha.nfsd cache when deleting 
files.

thanks,
Kinglong Mee

> When a file is being renamed, if the hash value of its new name happens to 
> fall in a range that is different than that of the old name, gluster creates 
> one such file. In the past we have seen instances of these files not being 
> cleaned up properly in some cases and that causes a ENOTEMPTY when rmdir 
> lands on the parent directory. Trying to see if we are hitting the same 
> problem here.
> 
> Regards,
> Vijay

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to