From 2729414b5315fe5dcd7eec310acc1be5f1d2b221 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 31 Mar 2015 20:09:00 +0530 Subject: [PATCH] Try a copy+remove instead of a rename to get a better idea of what is causing access denied errors when restoring database for some people on windows --- src/calibre/db/restore.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/calibre/db/restore.py b/src/calibre/db/restore.py index b264639485..c6d3f606c5 100644 --- a/src/calibre/db/restore.py +++ b/src/calibre/db/restore.py @@ -271,12 +271,8 @@ class Restore(Thread): os.remove(save_path) try: os.rename(dbpath, save_path) - except OSError as err: - if getattr(err, 'winerror', None) == 32: # ERROR_SHARING_VIOLATION - time.sleep(30) # Wait a little for dropbox or the antivirus or whatever to release the file - os.rename(dbpath, save_path) - else: - raise + except EnvironmentError: + time.sleep(30) # Wait a little for dropbox or the antivirus or whatever to release the file + shutil.copyfile(dbpath, save_path) + os.remove(dbpath) shutil.copyfile(ndbpath, dbpath) - -