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

 
 

bug #27057: regress impossible once out of disk space

Submitter:  Luke Plant <spookylukey>
Submitted:  Mon 20 Jul 2009 10:34:39 AM UTC
   
 
Category:  None Severity:  3 - Normal
Item Group:  None Status:  None
Privacy:  Public Assigned to:  None
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

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>
Group 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 Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2013-05-26 nirik Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code