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

Pranith Kumar Karampuri pkarampu at redhat.com
Mon Mar 30 09:50:13 UTC 2015


On 03/29/2015 02:23 PM, Emmanuel Dreyfus wrote:
> Pranith Kumar Karampuri <pkarampu at redhat.com> wrote:
>
>>> I see split-brain-resolution.t uses attribute replica.split-brain-choice
>>> to choose what replica should be used. This attribute is not in
>>> privilegied space (trusted. prefixed). Is it on purpose?
>> Yes, these are used as internal commands to make a choice when file is
>> in split-brain.
> Here is how the feature is broken on NetBSD:
> setting split-brain-resolution.t  causes afr inode context's spb_choice
> to be set to the desired source. That works.
>
> But when I try to read from the file, spb_choice is -1. This is because
> in the meantime, the context has been destroyed by afr_destroy()
> and reallocated with sbp_choice set to default value -1.
>
> 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.

Pranith
>
> 0xbb751313 <_gf_msg_backtrace_nomem+0xc0> at /autobuild/install/lib/libglusterfs.so.0
> 0xb9b441af <afr_forget+0x89> at /autobuild/install/lib/glusterfs/3.7dev/xlator/cluster/replicate.so
> 0xbb771801 <gf_timer_registry_destroy+0xc58> at /autobuild/install/lib/libglusterfs.so.0
> 0xbb7718af <gf_timer_registry_destroy+0xd06> at /autobuild/install/lib/libglusterfs.so.0
> 0xbb773a38 <inode_table_set_lru_limit+0x16a> at /autobuild/install/lib/libglusterfs.so.0
> 0xbb771dd4 <inode_unref+0x5d> at /autobuild/install/lib/libglusterfs.so.0
> 0xbb277518 <fuse_lookup_resume+0x723> at /autobuild/install/lib/glusterfs/3.7dev/xlator/mount/fuse.so
> 0xbb277639 <fuse_lookup_resume+0x844> at /autobuild/install/lib/glusterfs/3.7dev/xlator/mount/fuse.so
> 0xbb28d70f <fuse_get_mount_status+0x7af> at /autobuild/install/lib/glusterfs/3.7dev/xlator/mount/fuse.so
> 0xbb6a2bca <__libc_thr_exit+0x1f8> at /usr/lib/libpthread.so.1
>
>
>



More information about the Gluster-devel mailing list