Peter's Blog

Redefining the Impossible

rdiff-backup woes


Rdiff-backup has been failing with the following:

Previous backup seems to have failed, regressing destination now.
Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 23, in ?
    rdiff_backup.Main.Main(sys.argv[1:])
  File "/usr/lib/python2.3/site-packages/rdiff_backup/Main.py", line 254, in Main
    take_action(rps)
  File "/usr/lib/python2.3/site-packages/rdiff_backup/Main.py", line 234, in take_action
    elif action == "remove-older-than": RemoveOlderThan(rps[0])
  File "/usr/lib/python2.3/site-packages/rdiff_backup/Main.py", line 561, in RemoveOlderThan
    rot_check_dir(rootrp)
  File "/usr/lib/python2.3/site-packages/rdiff_backup/Main.py", line 593, in rot_check_dir
    checkdest_if_necessary(rootrp)
  File "/usr/lib/python2.3/site-packages/rdiff_backup/Main.py", line 672, in checkdest_if_necessary
    dest_rp.conn.regress.Regress(dest_rp)
  File "/usr/lib/python2.3/site-packages/rdiff_backup/regress.py", line 70, in Regress
    for rf in iterate_meta_rfs(mirror_rp, inc_rpath): ITR(rf.index, rf)
  File "/usr/lib/python2.3/site-packages/rdiff_backup/regress.py", line 159, in iterate_meta_rfs
    raw_rfs = iterate_raw_rfs(mirror_rp, inc_rp)
  File "/usr/lib/python2.3/site-packages/rdiff_backup/regress.py", line 129, in iterate_raw_rfs
    root_rf = RegressFile(mirror_rp, inc_rp, restore.get_inclist(inc_rp))
  File "/usr/lib/python2.3/site-packages/rdiff_backup/regress.py", line 181, in __init__
    self.set_regress_inc()
  File "/usr/lib/python2.3/site-packages/rdiff_backup/regress.py", line 196, in set_regress_inc
    assert len(newer_incs) <= 1, "Too many recent increments"
AssertionError: Too many recent increments

It seems that a previous backup failed so rdiff-backup is trying to revert and is failing here:

    def set_regress_inc(self):
        """Set self.regress_inc to increment to be removed (or None)"""
        newer_incs = self.get_newer_incs()
        assert len(newer_incs) <= 1, "Too many recent increments"
        if newer_incs: self.regress_inc = newer_incs[0] # first is mirror_rp
        else: self.regress_inc = None

Looks like I'll have to delete my old backups and start again, that or spend a few hours figuring out what has gone wrong. It may well be due to me messing up the system time a few weeks back.


Filed under: python

Sorry but comments on this post are now closed.