Corentin Chary
2009-Sep-28 13:49 UTC
[Gluster-users] AFR self-heal bug with rmdir (Directory not empty)
Hi, I'm trying to use glusterfs with afr. My setup have 2 servers and 2 clients. / is mounted with user_xattr. It seems that if you shutdown a server, remove a directory with one or more childs, then restart the server, the changes won't be replicated because rmdir is not recursive in afr-self-heal-entry.c Here is my test case: $ bin/clients.sh # launch 2 clients $ tree mnt/ export/ mnt/ |-- 1 `-- 2 export/ |-- 1 `-- 2 $ mkdir + touch $ tree mnt/1 mnt/1 |-- dir-empty |-- dir-with-file | `-- file `-- dir-with-subdir `-- subdir $ kill server 2 $ rm mnt/1/dir* -rf $ start server 2 $ tree mnt/ mnt/ |-- 1 `-- 2 $ tree export/ export/ |-- 1 |-- 2 |-- dir-with-file | `-- file `-- dir-with-subdir `-- subdir Log: [2009-09-28 15:30:09] D [afr-self-heal-entry.c:1865:afr_sh_entry_sync_prepare] afr: self-healing directory / from subvolume brick1 to 1 other [2009-09-28 15:30:09] D [afr-self-heal-entry.c:455:afr_sh_entry_expunge_remove_cbk] afr: removing /dir-with-subdir on brick2 failed (Directory not empty) [2009-09-28 15:30:09] D [afr-self-heal-entry.c:455:afr_sh_entry_expunge_remove_cbk] afr: removing /dir-with-file on brick2 failed (Directory not empty) [2009-09-28 15:30:09] D [afr-self-heal-entry.c:449:afr_sh_entry_expunge_remove_cbk] afr: removed /dir-empty on brick2 # server-x.vol volume brick type storage/posix option directory /home/iksaif/tmp/glusterfs/export/1 end-volume volume brick-lock type features/posix-locks option mandatory-locks on subvolumes brick end-volume volume server type protocol/server option transport-type tcp option transport.socket.bind-address 127.0.0.1 option transport.socket.listen-port 7001 subvolumes brick-lock option auth.addr.brick-lock.allow * end-volume # client.vol volume brick1 type protocol/client option transport-type tcp option remote-host 127.0.0.1 option remote-port 7001 option remote-subvolume brick-lock end-volume volume brick2 type protocol/client option transport-type tcp option remote-host 127.0.0.1 option remote-port 7002 option remote-subvolume brick-lock end-volume volume afr type cluster/afr subvolumes brick1 brick2 end-volume Thanks; -- Corentin Chary http://xf.iksaif.net
Corentin Chary
2009-Sep-29 09:21 UTC
[Gluster-users] AFR self-heal bug with rmdir (Directory not empty)
On Mon, Sep 28, 2009 at 3:49 PM, Corentin Chary <corentin.chary at gmail.com> wrote:> Hi, > I'm trying to use glusterfs with afr. > My setup have 2 servers and 2 clients. / is mounted with user_xattr. > It seems that if you shutdown a server, remove a directory with one or > more childs, then restart the server, the changes won't be replicated > because rmdir is not recursive in afr-self-heal-entry.cThe bug is affecting 2.0.2 and the current git (and probably all 2.x) 1.3.10 works as excepted. -- Corentin Chary http://xf.iksaif.net