Re: [Gluster-devel] split-brain-healing.t failure on NetBSD

2015-03-15 Thread Ravishankar N


On 03/15/2015 08:27 PM, Emmanuel Dreyfus wrote:

Emmanuel Dreyfus m...@netbsd.org 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@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel


Re: [Gluster-devel] split-brain-healing.t failure on NetBSD

2015-03-15 Thread Emmanuel Dreyfus
Ravishankar N ravishan...@redhat.com wrote:

 Unless replica_0_files_list=( $B0/${V0}1/* ) in NetBSD lists files 
 with complete path? It doesn't in Linux.

Right, this is the difference: original script uses 
replica_0_files_list=(`ls $B0/${V0}1`)

I use this because NetBSD's ls lists dot files when run as root:
replica_0_files_list=( $B0/${V0}1/* )

And indeed the later version gives me the complete path while the former
does not. This fix lets the test pass  better (there are still failure,
but not 100% of the time):
replica_0_files_list=(`ls $B0/${V0}1 | grep -v '^\.' `)

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
m...@netbsd.org
___
Gluster-devel mailing list
Gluster-devel@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-devel