From de256912050bc3d41c6e5ea8b003cf50bd8c7399 Mon Sep 17 00:00:00 2001 From: Aravinda VK Date: Wed, 20 May 2015 14:34:11 +0530 Subject: geo-rep: Ignore ESTALE during unlink/rmdir during unlink/rmdir of Parent_GFID/Basename, if parent directory does not exists. Parent GFID will not get resolved and DHT raises ESTALE instead of ENOENT. Now ESTALE errors ignored during unlink/rmdir BUG: 1223286 Change-Id: If275c89fb9fc7d16004550805a4cd65be818540d Signed-off-by: Aravinda VK Reviewed On: http://review.gluster.org/#/c/10837/ Reviewed-on: http://review.gluster.org/10913 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Kotresh HR Reviewed-by: Venky Shankar --- geo-replication/syncdaemon/resource.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'geo-replication/syncdaemon/resource.py') diff --git a/geo-replication/syncdaemon/resource.py b/geo-replication/syncdaemon/resource.py index d5d8d02e05e..ba92a4a53fd 100644 --- a/geo-replication/syncdaemon/resource.py +++ b/geo-replication/syncdaemon/resource.py @@ -600,10 +600,11 @@ class Server(object): if not matching_disk_gfid(gfid, entry): return - er = errno_wrap(os.unlink, [entry], [ENOENT, EISDIR]) + er = errno_wrap(os.unlink, [entry], [ENOENT, ESTALE, EISDIR]) if isinstance(er, int): if er == EISDIR: - er = errno_wrap(os.rmdir, [entry], [ENOENT, ENOTEMPTY]) + er = errno_wrap(os.rmdir, [entry], [ENOENT, ESTALE, + ENOTEMPTY]) if er == ENOTEMPTY: return er @@ -654,7 +655,8 @@ class Server(object): fullname = os.path.join(path, name) if not matching_disk_gfid(gfid, entry): return - er = errno_wrap(os.remove, [fullname], [ENOENT, EISDIR]) + er = errno_wrap(os.remove, [fullname], [ENOENT, ESTALE, + EISDIR]) if er == EISDIR: recursive_rmdir(gfid, entry, fullname) @@ -662,7 +664,7 @@ class Server(object): if not matching_disk_gfid(gfid, entry): return - errno_wrap(os.rmdir, [path], [ENOENT]) + errno_wrap(os.rmdir, [path], [ENOENT, ESTALE]) for e in entries: blob = None -- cgit