From 19e65beb16d2dc337d144e25337561ff6e82826a Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Thu, 10 Mar 2011 00:42:33 +0000 Subject: syncademon: fortify handling of failed entries queries Signed-off-by: Kaushik BV Signed-off-by: Vijay Bellur BUG: 1570 (geosync related changes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1570 --- xlators/features/marker/utils/syncdaemon/master.py | 16 +++++++++++++++- xlators/features/marker/utils/syncdaemon/resource.py | 9 +-------- 2 files changed, 16 insertions(+), 9 deletions(-) (limited to 'xlators/features/marker/utils') diff --git a/xlators/features/marker/utils/syncdaemon/master.py b/xlators/features/marker/utils/syncdaemon/master.py index 1abd03252..0f12f96cf 100644 --- a/xlators/features/marker/utils/syncdaemon/master.py +++ b/xlators/features/marker/utils/syncdaemon/master.py @@ -117,7 +117,21 @@ class GMaster(object): return if path == '.': self.change_seen = True - dem, des = ( x.server.entries(path) for x in (self.master, self.slave) ) + try: + dem = self.master.server.entries(path) + except OSError: + self.add_failjob(path, 'local-entries-fail') + return + try: + des = self.slave.server.entries(path) + except OSError: + self.slave.server.purge(path) + try: + self.slave.server.mkdir(path) + des = self.slave.server.entries(path) + except OSError: + self.add_failjob(path, 'remote-entries-fail') + return dd = set(des) - set(dem) if dd: self.slave.server.purge(path, dd) diff --git a/xlators/features/marker/utils/syncdaemon/resource.py b/xlators/features/marker/utils/syncdaemon/resource.py index 55c6e4dd7..dc3279d52 100644 --- a/xlators/features/marker/utils/syncdaemon/resource.py +++ b/xlators/features/marker/utils/syncdaemon/resource.py @@ -93,14 +93,7 @@ class Server(object): @staticmethod def entries(path): - try: - return os.listdir(path) - except OSError: - ex = sys.exc_info()[1] - if ex.errno == ENOTDIR: - return [] - else: - raise + return os.listdir(path) @classmethod def purge(cls, path, entries=None): -- cgit