Re: split-brain-healing.t failure on NetBSD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 03/15/2015 08:27 PM, Emmanuel Dreyfus wrote:
Emmanuel Dreyfus <manu@xxxxxxxxxx> wrote:

NetBSD passes the tests because before the test can fail, the client
goes into afr_inode_refresh_done(), where spit brain is detected and
repaired by syntask with a afr_refresh_selfheal_wrap() callback.
Here is how I understand it: the split brain has been created by direct
operations on the bricks, there is no pending operations in xattr.

No, the IO is done from the mount point, so there will be pending afr xattrs.

We go through: afr_inode_refresh_done() -> afr_replies_interpret() ->
afr_accuse_smallfiles(). Here we discover one of the brick has a smaller
and accuse it. This way the file can be healed.

Question: how was it supposed to fail?


Because of the pending xattrs, data_accused = [1,1], so afr_accuse_smallfiles() won't do anything. By the time we reach afr_readv_wind(), subvol=-1 and we fail with EIO.

_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel




[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux