On 03/30/2015 06:34 PM, Emmanuel Dreyfus wrote:
Pranith Kumar Karampuri <pkarampu@xxxxxxxxxx> 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
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel