|Subject:||Re: [rdiff-backup-users] Bug (and Fix) with NFS and --exclude-if-present|
|Date:||Sat, 30 Oct 2010 15:47:45 +1000|
|User-agent:||Mozilla-Thunderbird 18.104.22.168 (X11/20100329)|
Jakob Krainz wrote:
Hi Jakob,Hello Guys. I recently stumbled upon an error with NFS and --exclude-if-present. If the NFS-export contains a directory "lost+found", which is owned by root and has access rights rwx------ (0700) on the nfs-server, then no process on the client can access that directory (by default, as root is mapped to nobody). The selection function (Select.presence_get_sf in selection.py) that tests for the presence of a file however uses rp.readable() - which returns true, as the backup-process is root, and the directory is readable by root, according to its own metadata. The following lstat-call then throws an OSError-Exception (permission denied)... Below is a patch that should solve this problem. I would love to see this fix (or something comparable) included in the next stable rdiff-backup-version. If you have any more questions, please ask. Greetings, Jakob Krainz diff -r eb3cfb65bcb5 selection.py --- a/selection.py Wed Oct 27 17:21:01 2010 +0200 +++ b/selection.py Wed Oct 27 17:23:19 2010 +0200 @@ -478,9 +478,12 @@ assert include == 0 or include == 1 def sel_func(rp): - if rp.isdir() and rp.readable() and \ - rp.append(presence_filename).lstat(): - return include + try: + if rp.isdir() and rp.readable() and \ + rp.append(presence_filename).lstat(): + return include + except OSError: + return None return None sel_func.exclude = not include _______________________________________________ rdiff-backup-users mailing list at address@hidden http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki
I don't think there is much active development going on (I'm not a dev here just a user).
Rdiff-backup is pretty stable and works well in a large set of conditions.
But having the patch out there might help someone so thanks for posting it.
|[Prev in Thread]||Current Thread||[Next in Thread]|