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

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

[rdiff-backup-users] A bug in rdiff-backup with changing files


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

reply via email to

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