Dean,
Actually, an extra os.close was already in the except block so I don't
think there is an fd leak here.
ASCII 128 thru 255 are valid in FAT-32 filenames...and common outside
the US. I did add 127 (0177) to the quote list since that is not a
valid char. This is now in fs_abilities.py.2.patch.
The new patches (fs_abilities.py.2.patch and rpath.py.patch) should work
against the head of cvs.
These patches haven't changed and you already committed them:
http://www.visiwave.com/download/rdiff_backup/FilenameMapping.py.patch
http://www.visiwave.com/download/rdiff_backup/Security.py.patch
http://www.visiwave.com/download/rdiff_backup/fs_abilities.py.patch
These two still need to be applied:
http://www.visiwave.com/download/rdiff_backup/fs_abilities.py.2.patch
http://www.visiwave.com/download/rdiff_backup/rpath.py.patch
Sorry this got so confusing. I was actually trying to keep it simple.
For those using v1.1.7 with cygwin, just apply all 5 patches in the
above order.
marc
dean gaudet wrote:
On Mon, 29 Jan 2007, Marc Dyksterhouse wrote:
Dean,
I looked into what was happening with fsync under cygwin. Turns out fsync
returns EACCES for any file so I added that to the except clause to prevent
the exception from being re-raised. After fixing that, a few more exceptions
where happening because the 'data' array is not filled in under cygwin (not
sure why). I put some checks around some of the places that data['xxx'] is
accessed to prevent the exceptions.
The result is a new rpath.py patch (link below) that seems to work and should
be cross platform.
I'm also submitting a second fs_abilities.py patch. This one addresses your
concern about which chars are quoted. The problem with the original regex is
that it didn't quote * or ". My new regex only quotes the chars that are not
valid in FAT-32 plus the semicolon since that's the escape char. New regex:
'\000-\037\"*/:<>?\\\\|;'
Complete list:
http://www.visiwave.com/download/rdiff_backup/rpath.py.patch
i'd prefer a specific try/except around the os.fsync to catch the EACCESS
-- otherwise you'll be skipping the os.close... so i'm guessing you have
an fd leak in this patch.
http://www.visiwave.com/download/rdiff_backup/Security.py.patch
http://www.visiwave.com/download/rdiff_backup/fs_abilities.py.patch
http://www.visiwave.com/download/rdiff_backup/fs_abilities.py.2.patch
hmm... do you need to escape \200-\377 as well... ?
also ... any chance i could convince you to rebase all of these against
the CVS HEAD, since i've already commited most of it?
http://savannah.nongnu.org/cvs/?group=rdiff-backup
thanks a bunch
-dean
_______________________________________________
rdiff-backup-users mailing list at rdiff-backup-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki