From f2145790f9d58b85537c9b0f3cbcfaf7fd34fb38 Mon Sep 17 00:00:00 2001 From: owsla Date: Sun, 6 Jan 2008 02:13:22 +0000 Subject: Recover from EBADF during fsync(). Closes Savannah bug #15839 git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@868 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109 --- rdiff-backup/CHANGELOG | 4 ++++ rdiff-backup/rdiff_backup/rpath.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index 645b787..36193fb 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -1,6 +1,10 @@ New in v1.1.16 (????/??/??) --------------------------- +Add EBADF to the list of recoverable errors when fsync() is called. This +fixes an rdiff-backup error on AIX and IRIX. Closes Savannah bug #15839. +(Fix from Peter O'Gorman) + Properly initialize new QuotedRPaths. Fixes --list-at-time, etc. when the target is remote. (Andrew Ferguson) diff --git a/rdiff-backup/rdiff_backup/rpath.py b/rdiff-backup/rdiff_backup/rpath.py index dbb49f6..b33bf14 100644 --- a/rdiff-backup/rdiff_backup/rpath.py +++ b/rdiff-backup/rdiff_backup/rpath.py @@ -1181,7 +1181,7 @@ class RPath(RORPath): os.close(fd) except OSError, e: if locals().has_key('fd'): os.close(fd) - if (e.errno != errno.EPERM and e.errno != errno.EACCES) \ + if (e.errno not in (errno.EPERM, errno.EACCES, errno.EBADF)) \ or self.isdir(): raise # Maybe the system doesn't like read-only fsyncing. -- cgit v1.2.1