I've been using rdiff-backup for a little over a year, and it has been
very stable up until now. Several days ago, I had a crash and
rdiff-backup was forcefully terminated. The next time I tried to
backup, I got an error something like this:
Warning, could not find mirror_metadata file.
Metadata will be read from filesystem instead.
Fatal Error: No metadata for time Fri Sep 26 19:01:41 2008
(1222473701) found,
cannot regress
I eventually figured out that this was because I had multiple
current_mirror files. I moved the older one to another directory, and
it started backing up my files and rebuilding the metadata. I assume
it's because it is rebuilding the metadata, it takes about as long as
a full backup (I start the backup around 5:00 PM, it's not done by the
time I go to bed). Once it backs up the last file, it gives the
following error:
Exception ''xattr'' raised of class '<type 'exceptions.KeyError'>':
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 302, in error_check_Main
try: Main(arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 322, in Main
take_action(rps)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 278, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 341, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 238, in patch_and_increment
cls.CCPP.close()
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 479, in close
while self.cache_indicies: self.shorten_cache()
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 360, in shorten_cache
changed_flag, success_flag, inc)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 410, in post_process
self.metawriter.write_object(metadata_rorp)
File
"/var/lib/python-support/python2.5/rdiff_backup/metadata.py", line
443, in write_object
if self.eawriter and not rorp.get_ea().empty():
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py",
line 1233, in get_ea
except KeyError: ea = self.data['ea'] = ea_get(self)
File
"/var/lib/python-support/python2.5/rdiff_backup/eas_acls.py", line
565, in rpath_ea_get
ea.read_from_rp(rp)
File
"/var/lib/python-support/python2.5/rdiff_backup/eas_acls.py", line
59, in read_from_rp
try: attr_list = rp.conn.xattr.listxattr(rp.path)
File
"/var/lib/python-support/python2.5/rdiff_backup/connection.py",
line 65, in __getattr__
elif isinstance(__builtins__, dict): return __builtins__[name]
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 23, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 302, in error_check_Main
try: Main(arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 322, in Main
take_action(rps)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 278, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py",
line 341, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 238, in patch_and_increment
cls.CCPP.close()
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 479, in close
while self.cache_indicies: self.shorten_cache()
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 360, in shorten_cache
changed_flag, success_flag, inc)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py",
line 410, in post_process
self.metawriter.write_object(metadata_rorp)
File
"/var/lib/python-support/python2.5/rdiff_backup/metadata.py", line
443, in write_object
if self.eawriter and not rorp.get_ea().empty():
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py",
line 1233, in get_ea
except KeyError: ea = self.data['ea'] = ea_get(self)
File
"/var/lib/python-support/python2.5/rdiff_backup/eas_acls.py", line
565, in rpath_ea_get
ea.read_from_rp(rp)
File
"/var/lib/python-support/python2.5/rdiff_backup/eas_acls.py", line
59, in read_from_rp
try: attr_list = rp.conn.xattr.listxattr(rp.path)
File
"/var/lib/python-support/python2.5/rdiff_backup/connection.py",
line 65, in __getattr__
elif isinstance(__builtins__, dict): return __builtins__[name]
KeyError: 'xattr'
Fatal Error: Lost connection to the remote system
And the next time I try to run a backup, I have multiple
current_mirror files again, and no metadata for the most recent
backup. If it were just a matter of getting it to backup, I could
write a script that would remove one of the current_mirror files
before initiating the backup, but I also don't have 10 hours for the
backup every night.
If it comes down to it I'll scrap the existing repository and start
over, but it would sure be nice to keep my last several months of
backups in-tact as well.
Any help is greatly appreciated,
- Austin
------------------------------------------------------------------------
_______________________________________________
rdiff-backup-users mailing list at address@hidden
http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki