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

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

Re: [rdiff-backup-users] rdiff-backup 1.1.6 crash


From: Andrew Ferguson
Subject: Re: [rdiff-backup-users] rdiff-backup 1.1.6 crash
Date: Sun, 12 Nov 2006 21:15:17 -0500
User-agent: Thunderbird 1.5.0.8 (Macintosh/20061025)

Kevin Horton wrote:
> I updated from rdiff-backup 1.1.5 to 1.1.6, and then tried to update  
> a backup from one Mac to another.  I'm running OS X 10.4.8 on PPC on  
> both machines.

Kevin,

Thanks for catching this and I apologize for missing it during my
testing. I didn't realize precisely how rdiff-backup stored metadata
*across* backups. Everything in your backup went perfectly except for
diff'ing the old and new metadata in order to write a decrease storage
requirements.

The attached patch fixes the problem by checking to see if it is writing
pre-1.1.6 style metadata, which should only happen when it is diff'ing,
say, 1.1.5 metadata and 1.1.6 metadata. After your second successful
backup with 1.1.6, the issue goes away.

Dean, do you want to apply this to CVS and maybe to the 1.1.6 release? I
suppose it's a showstopper for Mac users...

Thanks,
Andrew

PS - The Mac Extended Attributes support I contributed is immune from
this problem because there is no previous EA record to diff. Also, I
could have avoided this problem in the creation dates patch by simply
adding a new line-type to the metadata record, but I felt that it wasn't
worth the extra overhead in the codebase.

-- 
Andrew Ferguson - address@hidden

diff -Nur rdiff-backup-cvs/rdiff_backup/metadata.py 
rdiff-backup-metadata-fix/rdiff_backup/metadata.py
--- rdiff-backup-cvs/rdiff_backup/metadata.py   2006-11-04 21:43:10.000000000 
-0500
+++ rdiff-backup-metadata-fix/rdiff_backup/metadata.py  2006-11-12 
21:05:22.000000000 -0500
@@ -70,7 +70,8 @@
        retvalparts.append('type:%s' % binascii.hexlify(cfile['type']))
        retvalparts.append('location:%d,%d' % cfile['location'])
        retvalparts.append('flags:%d' % cfile['flags'])
-       retvalparts.append('createDate:%d' % cfile['createDate'])
+       try: retvalparts.append('createDate:%d' % cfile['createDate'])
+       except KeyError: log.Log("Writing pre-1.1.6 style metadata, without 
creation date", 9)
        return '|'.join(retvalparts)
 
 def string2carbonfile(data):

reply via email to

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