bugrdiff-backup - Bugs: bug #37415, Spurious "IOError: [Errno 28]...

 
 

bug #37415: Spurious "IOError: [Errno 28] No space left on device" when backing up NTFS to EXT4 in Ubuntu 12.04

Submitted by:  David W <davewood>
Submitted on:  Fri 21 Sep 2012 02:51:05 AM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: Need Info
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.

 

Sat 08 Dec 2012 01:23:09 PM UTC, comment #1:

The following work arounds the issue:

In function "write_to_rp(self, rp)" you have to add errno.ENOSPC to the list of the "allowed" errors. Reason: For too long filenames, the attribute seems not to be saveable on EXT4.

Kind Regards,

Frank

Frank Thiele <gertdetlef>
Fri 21 Sep 2012 02:51:05 AM UTC, original submission:

I have backed up this filesystem many, many times. Suddenly, with Ubuntu 12.04, it was no longer possible. Some tiny files would bomb out with Errno 28 when backing up. Full stack trace below.

I verified that enormous amounts of free disk space were present, including on the specifically given tempdir, as well as enormous numbers of free inodes.

Looking closely at the failure, which is happening on xattr setting, I see rdiff-backup committers have already excluded many kinds of errors with a log message.

I suggest adding errno.ENOSPC to the list, since Ubuntu 12.04 now generates this as well. In other words, eas_acls.py line 119 would read:

errno.ENOENT, errno.EINVAL, errno.ENOSPC):

Full stack trace:

Exception '[Errno 28] No space left on device' raised of class '<type 'exceptions.IOError'>':
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
backup.Mirror(rpin, rpout)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 529, in fast_process
if self.patch_to_temp(mirror_rp, diff_rorp, tf):
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 559, in patch_to_temp
rpath.copy_attribs(diff_rorp, new)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 181, in copy_attribs
if Globals.eas_write: rpout.write_ea(rpin.get_ea())
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1347, in write_ea
ea.write_to_rp(self)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/eas_acls.py", line 114, in write_to_rp
rp.conn.xattr.setxattr(rp.path, name, value, 0, rp.issym())

Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in <module>
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib/python2.7/dist-packages/rdiff_backup/Main.py", line 346, in Backup
backup.Mirror(rpin, rpout)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 38, in Mirror
DestS.patch(dest_rpath, source_diffiter)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 232, in patch
ITR(diff.index, diff)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 529, in fast_process
if self.patch_to_temp(mirror_rp, diff_rorp, tf):
File "/usr/lib/python2.7/dist-packages/rdiff_backup/backup.py", line 559, in patch_to_temp
rpath.copy_attribs(diff_rorp, new)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 181, in copy_attribs
if Globals.eas_write: rpout.write_ea(rpin.get_ea())
File "/usr/lib/python2.7/dist-packages/rdiff_backup/rpath.py", line 1347, in write_ea
ea.write_to_rp(self)
File "/usr/lib/python2.7/dist-packages/rdiff_backup/eas_acls.py", line 114, in write_to_rp
rp.conn.xattr.setxattr(rp.path, name, value, 0, rp.issym())
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
File "./backup.py", line 226, in <module>
subprocess.check_call(rdiffcommand)
File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['rdiff-backup', '--exclude-other-filesystems', '--print-statistics', '--tempdir', '/mnt/backup/tempdir', '-v5', '--exclude-globbing-filelist', 'rdiff-exclusions', '--exclude-globbing-filelist', 'rdiff-exclusions-localhost-media,EC6C26516C2616BC', '/media/EC6C26516C2616BC', '/mnt/backup/localhost/fs-,media,EC6C26516C2616BC']' returned non-zero exit status 1

Until this is fixed, NTFS cannot be backed up on Ubuntu with rdiff-backup, which is a problem to anyone hoping to back up their dual-boot machine.

David W <davewood>

 

(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 davekempe (Updated the item)
  • -unavailable- added by gertdetlef (Posted a comment)
  • -unavailable- added by davewood (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):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri 12 Feb 2016 09:46:33 PM UTCdavekempeStatusNone=>Need Info
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1