[Gluster-devel] About split-brain-resolution.t

Pranith Kumar Karampuri pkarampu at redhat.com
Mon Mar 30 12:14:23 UTC 2015


On 03/30/2015 06:34 PM, Emmanuel Dreyfus wrote:
> Pranith Kumar Karampuri <pkarampu at redhat.com> wrote:
>
>>> Since spb_choice is not saved as an attribute for the file on the
>>> bricks, it cannot be recovered when the context is reallocated. Either
>>> that "save" feature has been forgotten, or going to afr_destroy() here
>>> is a bug. Here is the backtrace leading there:
>> This is a known issue :-(. I will need to talk to Anuradha once about
>> this issue. She is not in today. Will let you know about the decision.
> It seems the thing arise because a threads quits and decide to cleanup
> stuff. Do we have an idea what this thread is? For the test to pass we
> need to keep the thread alive.
>
> Of course that works around a real problem. Why don't we immediatly
> clear pending xattr when replica.split-brain-choice is set? That would
> clear the split brain state.
this is how the feature is supposed to work:
https://github.com/gluster/glusterfs/blob/master/doc/features/heal-info-and-split-brain-resolution.md

Basically the choice is given to inspect the 'data' of the file. Then 
one can finalize the choice which will clear the pending xattrs after 
resolving the split-brain.
Problem here is that ' inode_forget' is coming even before it gets to 
inspect the file. We initially thought we should 'ref' the inode when 
the user specifies the choice and 'unref' it at the time of 'finalize' 
or 'abort' of the operation. But that may lead to un-necessary leaks 
when the user forgets to do either finalize/abort the operation. One way 
to get around it is to ref the inode for some 'pre-determined time' when 
'choice' is given.

Pranith
>



More information about the Gluster-devel mailing list