|
From: | Josh Nisly |
Subject: | [rdiff-backup-users] A bug in rdiff-backup with changing files |
Date: | Sat, 22 Aug 2009 08:12:42 -0500 |
User-agent: | Thunderbird 2.0.0.22 (X11/20090608) |
One of my clients encountered an interesting
bug in rdiff-backup - under certain conditions, if a file changes while
it is being backed up, rdiff-backup throws an unhandled exception. The
surface problem is that rdiff-backup tries to read a Windows ACL from a
file on linux, and dies as a result. I've found why the problem is happening, but I don't understand why this isn't already a problem with extended attributes, or why it doesn't happen more often. The basic story, as far as I can tell: * The backup is Windows -> Linux. * rdiff-backup tries to update the file; it changes while updating, so it never gets updated. * In CacheCollatedPostProcess::post_process, we see that the file wasn't updated, so we decide to get the metadata from the destination file. * The metadata writer starts to write the file. Since it's recording ACLs, it tries to load them from the source rp. * The metadata source rp is on a linux system, so it obviously can't load Windows ACLs. * rdiff-backup crashes because of the except line in load_from_rp, since it's trying to catch exceptions of type pywintypes.error, and it never imported pywintypes.error. If nobody has more ideas on this one, I'm going to commit a localized fix to win_acls.py to simply return a blank ACL when it can't import the necessary modules. Thanks, JoshN |
[Prev in Thread] | Current Thread | [Next in Thread] |