Welcome! » Log In » Create A New Profile

Practical error recovery in rdiff-backup?

Posted by Anonymous 
Practical error recovery in rdiff-backup?
September 13, 2011 02:57AM
Hello,

I have a strange situation which might be the result either of a
rdiff-backup bug or file lossage from a server crash. The output below
is from rdiff-backup attempting to do a normal backup, in which it
regressed the previous unsuccessful one and tried again, only to bomb
out. This cycle is 100% repeatable.

The problem is that "/backup/services/www/cms/lang" really doesn't exist
in the destination repository, and I don't know if rdiff-backup deleted
it or it disappeared after a server crash. In any case, it seems to make
my repository unusable. Have I just lost all the backups?

Any ideas?

Any suggestions for a similar backup tool which is not so sensitive to
crashes? I would really appreciate something fsck-like which would in
effect nuke all corrupted data in the destination repository and allow
me to continue using it as-is. The "--check-destination-dir" option to
rdiff-backup apparently doesn't deal with any serious issues.

(this is rdiff-backup-1.2.8 and "/backup" is a NFS mount point)

Warning: expected /backup/services/www/cms/lang to be a directory but
found None instead.
This is probably caused by a bug in versions 1.0.0 and earlier.
Processing changed file www/cms/lang
Exception '('www', 'cms', 'lang')' raised of class '<type
'exceptions.KeyError'>':
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 304, in error_check_Main
try: Main(arglist)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 324, in Main
take_action(rps)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 343, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 243, in patch_and_increment
ITR(diff.index, diff)
File
"/usr/local/lib/python2.6/site-packages/rdiff_backup/rorpiter.py", line
280, in __call__
if last_branch.can_fast_process(*args):
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 520, in can_fast_process
mirror_rorp = self.CCPP.get_mirror_rorp(index)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 471, in get_mirror_rorp
except KeyError: return self.get_parent_rorps(index)[1]
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 453, in get_parent_rorps
raise KeyError(index)

Traceback (most recent call last):
File "/usr/local/bin/rdiff-backup", line 30, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 304, in error_check_Main
try: Main(arglist)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 324, in Main
take_action(rps)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/Main.py",
line 343, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 243, in patch_and_increment
ITR(diff.index, diff)
File
"/usr/local/lib/python2.6/site-packages/rdiff_backup/rorpiter.py", line
280, in __call__
if last_branch.can_fast_process(*args):
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 520, in can_fast_process
mirror_rorp = self.CCPP.get_mirror_rorp(index)
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 471, in get_mirror_rorp
except KeyError: return self.get_parent_rorps(index)[1]
File "/usr/local/lib/python2.6/site-packages/rdiff_backup/backup.py",
line 453, in get_parent_rorps
raise KeyError(index)
KeyError: ('www', 'cms', 'lang')

_______________________________________________
rdiff-backup-users mailing list at rdiff-backup-users < at > nongnu.org
https://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki
Sorry, only registered users may post in this forum.

Click here to login