[Gluster-users] favorite-child and self-heal BUG ?

artur.k a.kaminski at o2.pl
Fri Jan 9 09:02:36 UTC 2009


>>
>>> As Keith said you should not modify the backend directly.
>>>
>>
>> if the disc will fall on a single server glaster remove files from the second (good server) ?
>>
>>
>>
> noc-xx-2:/mnt/glusterfs# echo 7 > 7
>> bash: 7: Input/output error
>> noc-xx-2:/mnt/glusterfs#
>> noc-xx-2:/mnt/glusterfs# echo 7 > 7
>> bash: 7: Input/output error
>> noc-xx-2:/mnt/glusterfs# echo 7 > 7
>> noc-xx-2:/mnt/glusterfs#
>> noc-xx-2:/mnt/glusterfs#
>>
>>
>> ehh... if the 7 file exist only once server. on second server deleted by rm -f  trac-xx-1:/var/storage/glusterfs/7
>> :D
>>
>>

>Artur,

> Can you explain once again the problem you are seeing? Step by step?

> Krishna




1.
Both servers are running. 

noc-xx-2:/mnt/glusterfs# touch 1
noc-xx-2:/mnt/glusterfs# touch 2
noc-xx-2:/mnt/glusterfs# touch 3
noc-xx-2:/mnt/glusterfs# touch 4
noc-xx-2:/mnt/glusterfs# touch 5
noc-xx-2:/mnt/glusterfs# touch 6
noc-xx-2:/mnt/glusterfs# touch 7
noc-xx-2:/mnt/glusterfs# touch 8
noc-xx-2:/mnt/glusterfs# touch 9
noc-xx-2:/mnt/glusterfs# ls
1  2  3  4  5  6  7  8  9


2.

I disable the server set as "favorite child" 

trac-xx-1:/var/storage/glusterfs# /etc/init.d/glusterfs-server stop
Stopping glusterfs server: glusterfsd.

trac-xx-1:/var/storage/glusterfs# rm -rf 8 9
trac-xx-1:/var/storage/glusterfs# ls
1  2  3  4  5  6  7
trac-xx-1:/var/storage/glusterfs# /etc/init.d/glusterfs-server start
Starting glusterfs server: glusterfsd.

3.

noc-xx-2:/mnt/glusterfs# ls
1  2  3  4  5  6  7  8  9
noc-xx-2:/mnt/glusterfs#
noc-xx-2:/mnt/glusterfs#
noc-xx-2:/mnt/glusterfs# ls
1  2  3  4  5  6  7


Hmmm...readings are taken from the default server designated as "favorite child"  ??

noc-xx-2:/mnt/glusterfs# cat 8
cat: 8: Input/output error
noc-xx-2:/mnt/glusterfs# cat 8
cat: 8: Input/output error
noc-xx-2:/mnt/glusterfs# cat 8
noc-xx-2:/mnt/glusterfs#
noc-xx-2:/mnt/glusterfs#
noc-xx-2:/mnt/glusterfs# cat 8
noc-xx-2:/mnt/glusterfs# cat 9
cat: 9: Input/output error
noc-xx-2:/mnt/glusterfs# cat 9
cat: 9: Input/output error
noc-xx-2:/mnt/glusterfs# cat 9
noc-xx-2:/mnt/glusterfs# cat 9

4.

trac-xx-1:/var/storage/glusterfs# ls
1  2  3  4  5  6  7  8  9


5.

trac-xx-2:/var/storage/glusterfs# ls
1  2  3  4  5  6  7  8  9


As you can see the files replicated themselves but only after the third attempt to open the file on a client. As I understand I shouldn't remove the file directly on the server but such situation might occur. Perhaps the scenarion should be addressed somehow? 


logs:
2009-01-09 09:20:19 E [afr-self-heal-data.c:778:afr_sh_data_fix] afr: Unable to resolve conflicting data of /8. Please resolve manually by deleting the file /8 from all but the preferred subvolume. Please consider 'option favorite-child <>'
2009-01-09 09:20:19 W [afr.c:618:afr_open] afr: returning EIO, file has to be manually corrected in backend
2009-01-09 09:20:19 E [fuse-bridge.c:662:fuse_fd_cbk] glusterfs-fuse: 1091: OPEN() /8 => -1 (Input/output error)
2009-01-09 09:20:20 W [afr.c:618:afr_open] afr: returning EIO, file has to be manually corrected in backend
2009-01-09 09:20:20 E [fuse-bridge.c:662:fuse_fd_cbk] glusterfs-fuse: 1092: OPEN() /8 => -1 (Input/output error)
2009-01-09 09:20:21 W [afr-self-heal-data.c:764:afr_sh_data_fix] afr: Picking favorite child client1 as authentic source to resolve conflicting data of /8
2009-01-09 09:20:21 W [afr-self-heal-data.c:615:afr_sh_data_open_cbk] afr: sourcing file /8 from client1 to other sinks
2009-01-09 09:22:10 W [afr-self-heal-common.c:843:sh_missing_entries_lookup_cbk] afr: path /9 on subvolume client1 => -1 (No such file or directory)
2009-01-09 09:22:10 E [afr-self-heal-data.c:778:afr_sh_data_fix] afr: Unable to resolve conflicting data of /9. Please resolve manually by deleting the file /9 from all but the preferred subvolume. Please consider 'option favorite-child <>'
2009-01-09 09:22:10 W [afr.c:618:afr_open] afr: returning EIO, file has to be manually corrected in backend
2009-01-09 09:22:10 E [fuse-bridge.c:662:fuse_fd_cbk] glusterfs-fuse: 1114: OPEN() /9 => -1 (Input/output error)
2009-01-09 09:22:11 W [afr.c:618:afr_open] afr: returning EIO, file has to be manually corrected in backend
2009-01-09 09:22:11 E [fuse-bridge.c:662:fuse_fd_cbk] glusterfs-fuse: 1115: OPEN() /9 => -1 (Input/output error)
2009-01-09 09:22:12 W [afr-self-heal-data.c:764:afr_sh_data_fix] afr: Picking favorite child client1 as authentic source to resolve conflicting data of /9
2009-01-09 09:22:12 W [afr-self-heal-data.c:615:afr_sh_data_open_cbk] afr: sourcing file /9 from client1 to other sinks









More information about the Gluster-users mailing list