Thanks Csaba,

So far as I am aware nothing tampered with the xattrs,  and all the bricks etc 
are time synchronised.  Anyway I did as you suggest,  now for one volume  (I 
have three being geo-rep'd) I consistently get this:

OSError: [Errno 12] Cannot allocate memory
[2011-06-28 07:38:51.194791] I [monitor(monitor):42:monitor] Monitor: 
------------------------------------------------------------
[2011-06-28 07:38:51.203562] I [monitor(monitor):43:monitor] Monitor: starting 
gsyncd worker
:2011-06-28 06:04:48.524348] I [gsyncd:286:main_i] <top>: syncing: 
gluster://localhost:app-volume -> file:///geo-tank/app-volume
[2011-06-28 06:04:54.480377] I [master:181:crawl] GMaster: new master is 
eb9f50ba-f17c-4109-ae87-4162925d1db2
[2011-06-28 06:04:54.480622] I [master:187:crawl] GMaster: primary master with 
volume id eb9f50ba-f17c-4109-ae87-4162925d1db2 ...
[2011-06-28 07:38:41.134073] E [syncdutils:131:exception] <top>: FAIL: 
Traceback (most recent call last):
 File 
"/opt/glusterfs/3.2.1/local/libexec//glusterfs/python/syncdaemon/gsyncd.py", 
line 102, in main
   main_i()
 File 
"/opt/glusterfs/3.2.1/local/libexec//glusterfs/python/syncdaemon/gsyncd.py", 
line 296, in main_i
   local.service_loop(*[r for r in [remote] if r])
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/resource.py", 
line 401, in service_loop
   GMaster(self, args[0]).crawl_loop()
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 113, in crawl_loop
   self.crawl()
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 291, in crawl
   True)[-1], blame=e) == False:
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 257, in indulgently
   return fnc(e)
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 289, in <lambda>
   if indulgently(e, lambda e: (self.add_job(path, 'cwait', self.wait, e, xte, 
adct),
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 291, in crawl
   True)[-1], blame=e) == False:
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 257, in indulgently
   return fnc(e)
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 289, in <lambda>
   if indulgently(e, lambda e: (self.add_job(path, 'cwait', self.wait, e, xte, 
adct),
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 291, in crawl
   True)[-1], blame=e) == False:
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 257, in indulgently
   return fnc(e)
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 289, in <lambda>
   if indulgently(e, lambda e: (self.add_job(path, 'cwait', self.wait, e, xte, 
adct),
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 248, in crawl
   xte = self.xtime(e)
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/master.py", 
line 57, in xtime
   xt = rsc.server.xtime(path, self.uuid)
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/resource.py", 
line 145, in xtime
   return struct.unpack('!II', Xattr.lgetxattr(path, '.'.join([cls.GX_NSPACE, 
uuid, 'xtime']), 8))
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/libcxattr.py", 
line 34, in lgetxattr
   return cls._query_xattr( path, siz, 'lgetxattr', attr)
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/libcxattr.py", 
line 26, in _query_xattr
   cls.raise_oserr()
 File 
"/opt/glusterfs/3.2.1/local/libexec/glusterfs/python/syncdaemon/libcxattr.py", 
line 16, in raise_oserr
   raise OSError(errn, os.strerror(errn))
OSError: [Errno 12] Cannot allocate memory
[2011-06-28 07:38:51.194791] I [monitor(monitor):42:monitor] Monitor: 
------------------------------------------------------------
[2011-06-28 07:38:51.203562] I [monitor(monitor):43:monitor] Monitor: starting 
gsyncd worker


Regards,

Adrian


On 27 Jun 2011, at 23:23, Csaba Henk wrote:

> This means that the geo-replication indexing ("xtime" extended attributes) 
> has gone inconsistent. If these xattrs wasn't tampered with by an outside 
> actor  (ie. anything that is not the gsyncd process spawned upon the 
> "geo-replication start", and its children), then this happens if the clock of 
> the master box (more precisely, any brick which belongs to the master volume) 
> is set backwards. In that case the whole indexing is gone corrupt and to fix 
> it, you should reset the index with
> 
> # gluster volume set <master volume> geo-replication.indexing off
> # gluster volume set <master volume> geo-replication.indexing on
> 
> (for this you should first stop geo-rep sessions with <master volume> as 
> master; they can be restarted after the index reset). The side effect of this 
> operation is that a full rsync-style synchronization will be performed once, 
> ie. files will be checked if match by means of a two-side checksum.
> 
> Regards,
> Csaba

_______________________________________________
Gluster-users mailing list
[email protected]
http://gluster.org/cgi-bin/mailman/listinfo/gluster-users

Reply via email to