From f201b46d1b20db1f2b11344e99db3381d9d4c1e1 Mon Sep 17 00:00:00 2001 From: Venky Shankar Date: Tue, 27 Aug 2013 14:02:24 +0530 Subject: gsyncd / geo-rep: handle ENOENT during readlink() Change-Id: I8611122fda63ea496ad4491473ecabe96bf19cfa BUG: 1003803 Signed-off-by: Venky Shankar Reviewed-by: Amar Tumballi Tested-by: Amar Tumballi Reviewed-on: http://review.gluster.org/5756 Tested-by: Gluster Build System Reviewed-by: Avra Sengupta Tested-by: Avra Sengupta Reviewed-by: Anand Avati --- geo-replication/syncdaemon/master.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py index ef151a32a..d33e4ed30 100644 --- a/geo-replication/syncdaemon/master.py +++ b/geo-replication/syncdaemon/master.py @@ -18,7 +18,7 @@ from gconf import gconf from tempfile import mkdtemp, NamedTemporaryFile from syncdutils import FreeObject, Thread, GsyncdError, boolify, escape, \ unescape, select, gauxpfx, md5hex, selfkill, entry2pb, \ - lstat + lstat, errno_wrap URXTIME = (-1, 0) @@ -696,7 +696,10 @@ class GMasterChangelogMixin(GMasterCommon): elif ty == 'LINK': entries.append(edct(ty, stat=st, entry=en, gfid=gfid)) elif ty == 'SYMLINK': - entries.append(edct(ty, stat=st, entry=en, gfid=gfid, link=os.readlink(en))) + rl = errno_wrap(os.readlink, [en], [ENOENT]) + if isinstance(rl, int): + continue + entries.append(edct(ty, stat=st, entry=en, gfid=gfid, link=rl)) elif ty == 'RENAME': e2 = unescape(os.path.join(pfx, ec[self.POS_ENTRY2])) entries.append(edct(ty, gfid=gfid, entry=en, entry1=e2, stat=st)) -- cgit