[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Rdiff-backup-bugs] [bug #19895] On cifs volume, set_escape_dos_devices
[Rdiff-backup-bugs] [bug #19895] On cifs volume, set_escape_dos_devices raises "Permission denied" exception when lstat called on "aux"
Sat, 19 May 2007 03:26:52 +0000
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:188.8.131.52) Gecko/20070309 Firefox/184.108.40.206
Follow-up Comment #1, bug #19895 (project rdiff-backup):
Here's my patch to catch the OSError that is raised when you try to lstat the
"aux" (or any other) special file on a CIFS-mounted Windows share.
I originally fixed one location where it tries to lstat "aux" then found two
more :-) So, I am including them in the patch as well.
In fact, it looks like the OSError is raised somewhere in
subdir.append("aux") before the lstat is called, but I didn't look too deeply
at this. I just wrapped anything that could raise an exception in a try.
I wasn't sure why the original code did an "if device_rp.lstat()" and then,
depending on that call, did an "assert device_rp.lstat()" or "assert not
device_rp.lstat()", so I changed that in my patch. I don't "do" python, so
please correct it if I was wrong. Now, if lstat returns a true value,
indicating that "aux" exists (I don't think it can do this on a CIFS-mounted
Windows share), _or_ if an OSError is raised (this seems to always happen on
a CIFS-mounted Windows share), it will escape dos devices, otherwise it will
See also my bug report #19896. After applying this patch and the one from
#19896, and the setting LookupCacheEnabled to 0 via proc fs (see #19802), I
am able to backup to and restore to a CIFS-mounted Windows share, on linux
Additional Item Attachment:
File name: fs_abilities.py.set_escape_dos_devices.diff Size:2 KB
Reply to this item at:
Message sent via/by Savannah