bugrdiff-backup - Bugs: bug #27057, regress impossible once out of...

 
 

bug #27057: regress impossible once out of disk space

Submitted by:  Luke Plant <spookylukey>
Submitted on:  Mon 20 Jul 2009 10:34:39 AM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: None
Privacy: PublicAssigned to: None
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 26 May 2013 03:53:10 PM UTC, comment #1:

Given that this was 3 years ago now, you probibly solved this somehow.

Did you actually free up space before trying the check? Also, --force may have been needed.

Anyhow, if there's anything further we can do here, please feel free to reopen this.

Kevin Fenzi <nirik>
Project Member
Mon 20 Jul 2009 10:34:39 AM UTC, original submission:

I ran out of space on a backup device, and now I can't recover it. If I do:

rdiff-backup --check-destination-dir /my/backup/dir

then I get more out of space errors.

Exception '[Errno 28] No space left on device' raised of class '<type 'exceptions.IOError'>':
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 282, in take_action
elif action == "check-destination-dir": CheckDest(rps[0])
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 857, in CheckDest
dest_rp.conn.regress.Regress(dest_rp)
File "/var/lib/python-support/python2.6/rdiff_backup/regress.py", line 71, in Regress
for rf in iterate_meta_rfs(mirror_rp, inc_rpath): ITR(rf.index, rf)
File "/var/lib/python-support/python2.6/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/var/lib/python-support/python2.6/rdiff_backup/regress.py", line 268, in fast_process
if rf.metadata_rorp.isreg(): self.restore_orig_regfile(rf)
File "/var/lib/python-support/python2.6/rdiff_backup/regress.py", line 290, in restore_orig_regfile
tf.write_from_fileobj(rf.get_restore_fp())
File "/var/lib/python-support/python2.6/rdiff_backup/rpath.py", line 1195, in write_from_fileobj
copyfileobj(fp, outfp)
File "/var/lib/python-support/python2.6/rdiff_backup/rpath.py", line 64, in copyfileobj
outputfp.write(inbuf)

Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 282, in take_action
elif action == "check-destination-dir": CheckDest(rps[0])
File "/var/lib/python-support/python2.6/rdiff_backup/Main.py", line 857, in CheckDest
dest_rp.conn.regress.Regress(dest_rp)
File "/var/lib/python-support/python2.6/rdiff_backup/regress.py", line 71, in Regress
for rf in iterate_meta_rfs(mirror_rp, inc_rpath): ITR(rf.index, rf)
File "/var/lib/python-support/python2.6/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/var/lib/python-support/python2.6/rdiff_backup/regress.py", line 268, in fast_process
if rf.metadata_rorp.isreg(): self.restore_orig_regfile(rf)
File "/var/lib/python-support/python2.6/rdiff_backup/regress.py", line 290, in restore_orig_regfile
tf.write_from_fileobj(rf.get_restore_fp())
File "/var/lib/python-support/python2.6/rdiff_backup/rpath.py", line 1195, in write_from_fileobj
copyfileobj(fp, outfp)
File "/var/lib/python-support/python2.6/rdiff_backup/rpath.py", line 64, in copyfileobj
outputfp.write(inbuf)
IOError: [Errno 28] No space left on device

I tried deleting files on the device (not related to the backup) but this seemed to do no good (according to 'df'). I'm guessing this may be because I have mounted the device with the 'acl' option (which I need to backup the ACLs on my source device). I can delete quite large files on the backup device without gaining any 'available' space.

This is a very serious bug in rdiff-backup. I cannot regress the backup, or remove older increments etc, so my backup is now effectively useless.

A workaround would be manually remove old increment files. But I have no idea how to do this, and would only think of doing it via a script which did the right thing, otherwise I just risk corrupting my backup further - as the man page says:

<<<
Note that you should not write to the mirror directory except with rdiff-backup.

>>>

Luke Plant <spookylukey>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by nirik (Posted a comment)
  • -unavailable- added by spookylukey (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follows 1 latest change.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun 26 May 2013 03:53:10 PM UTCnirikOpen/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1