Sat 24 Oct 2009 07:37:00 AM UTC, original submission:
Using rdiff-backup-1.2.8-1.el5.rf with pyxattr-0.4.0-2.el5 on Centos 5.3.
The filesystem being backed up contains a symlink to itself.
[root@staticweb ~]# cd /usr/local/include/libpng/
[root@staticweb libpng]# ll
total 4
lrwxrwxrwx 1 root root 8 Apr 29 13:02 libpng12 -> libpng12
This results in rdiff-backup crashing when attempting to make a backup of it. Although symlinks to self are not useful rdiff-backup should not crash. rdiff-backup only started crashing on this condition since I installed pyxattr.
diff-backup --exclude-sockets --exclude-globbing-filelist /mnt/xen1_backup/staticweb.xyz.com/config/rdiff_exclude_list --force 124.100.13.8::/mnt/
snapshots/ /mnt/xen1_backup/staticweb.xyz.com/data
Warning: Access Control List file not found
Warning: Extended Attributes file not found
Exception '[Errno 40] Too many levels of symbolic links: '/mnt/xen1_backup/staticweb.xyz.com/data/usr/local/include/libpng/rdiff-backup.tmp.217089'
' raised of class 'exceptions.IOError':
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in ?
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 343, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 243, in patch_and_increment
ITR(diff.index, diff)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 692, in fast_process
if self.patch_to_temp(mirror_rp, diff_rorp, tf):
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 553, in patch_to_temp
result = self.patch_snapshot_to_temp(diff_rorp, new)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 578, in patch_snapshot_to_temp
rpath.copy_attribs(diff_rorp, new)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/rpath.py", line 181, in copy_attribs
if Globals.eas_write: rpout.write_ea(rpin.get_ea())
File "/usr/lib64/python2.4/site-packages/rdiff_backup/rpath.py", line 1347, in write_ea
ea.write_to_rp(self)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/eas_acls.py", line 114, in write_to_rp
rp.conn.xattr.setxattr(rp.path, name, value, 0, rp.issym())
File "/usr/lib64/python2.4/site-packages/xattr-0.4-py2.4-linux-x86_64.egg/xattr/__init__.py", line 188, in setxattr
return xattr(f).set(attr, value, options=options)
File "/usr/lib64/python2.4/site-packages/xattr-0.4-py2.4-linux-x86_64.egg/xattr/__init__.py", line 81, in set
self._set(name, value, 0, options | self.options)
File "/usr/lib64/python2.4/site-packages/xattr-0.4-py2.4-linux-x86_64.egg/xattr/__init__.py", line 16, in _func
return func(first, *args)
IOError: [Errno 40] Too many levels of symbolic links: '/mnt/xen1_backup/staticweb.xyz.com/data/usr/local/include/libpng/rdiff-backup.tmp.217089'
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 30, in ?
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 304, in error_check_Main
try: Main(arglist)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 324, in Main
take_action(rps)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 280, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/usr/lib64/python2.4/site-packages/rdiff_backup/Main.py", line 343, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 243, in patch_and_increment
ITR(diff.index, diff)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/rorpiter.py", line 281, in _call_
last_branch.fast_process(*args)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 692, in fast_process
if self.patch_to_temp(mirror_rp, diff_rorp, tf):
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 553, in patch_to_temp
result = self.patch_snapshot_to_temp(diff_rorp, new)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/backup.py", line 578, in patch_snapshot_to_temp
rpath.copy_attribs(diff_rorp, new)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/rpath.py", line 181, in copy_attribs
if Globals.eas_write: rpout.write_ea(rpin.get_ea())
File "/usr/lib64/python2.4/site-packages/rdiff_backup/rpath.py", line 1347, in write_ea
ea.write_to_rp(self)
File "/usr/lib64/python2.4/site-packages/rdiff_backup/eas_acls.py", line 114, in write_to_rp
rp.conn.xattr.setxattr(rp.path, name, value, 0, rp.issym())
File "/usr/lib64/python2.4/site-packages/xattr-0.4-py2.4-linux-x86_64.egg/xattr/__init__.py", line 188, in setxattr
return xattr(f).set(attr, value, options=options)
File "/usr/lib64/python2.4/site-packages/xattr-0.4-py2.4-linux-x86_64.egg/xattr/__init__.py", line 81, in set
self._set(name, value, 0, options | self.options)
File "/usr/lib64/python2.4/site-packages/xattr-0.4-py2.4-linux-x86_64.egg/xattr/__init__.py", line 16, in _func
return func(first, *args)
IOError: [Errno 40] Too many levels of symbolic links: '/mnt/xen1_backup/staticweb.xyz.com/data/usr/local/include/libpng/rdiff-backup.tmp.217089'
Fatal Error: Lost connection to the remote system
|