rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [rdiff-backup-users] More patches to get rdiff-backup working under


From: Marc Dyksterhouse
Subject: Re: [rdiff-backup-users] More patches to get rdiff-backup working under cygwin/windows
Date: Mon, 29 Jan 2007 10:06:56 -0500
User-agent: Thunderbird 1.5.0.9 (Windows/20061207)

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]