From 638897329269eea6055764e87821e679eb1816b6 Mon Sep 17 00:00:00 2001 From: HelloZeroNet Date: Thu, 7 Apr 2016 10:36:50 +0200 Subject: [PATCH] Retry file rename later if resource not ready yet --- src/Site/SiteStorage.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Site/SiteStorage.py b/src/Site/SiteStorage.py index b76121a1..42696cae 100644 --- a/src/Site/SiteStorage.py +++ b/src/Site/SiteStorage.py @@ -168,7 +168,17 @@ class SiteStorage: os.rmdir(dir_path) def rename(self, inner_path_before, inner_path_after): - os.rename(self.getPath(inner_path_before), self.getPath(inner_path_after)) + for retry in range(3): + # To workaround "The process cannot access the file beacause it is being used by another process." error + try: + os.rename(self.getPath(inner_path_before), self.getPath(inner_path_after)) + err = None + break + except Exception, err: + self.log.error("%s rename error: %s" % (inner_path_before, err)) + time.sleep(0.1 + retry) + if err: + raise err # List files from a directory def list(self, dir_inner_path):