rdiff-backup-bugs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-bugs] [bug #27795] Symlink to self on filesystem results i


From: Simon Blandford
Subject: [Rdiff-backup-bugs] [bug #27795] Symlink to self on filesystem results in xattr related crash
Date: Sat, 24 Oct 2009 07:37:01 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.14) Gecko/2009091914 Mandriva/1.9.0.14-0.1mdv2009.1 (2009.1) Firefox/3.0.14

URL:
  <http://savannah.nongnu.org/bugs/?27795>

                 Summary: Symlink to self on filesystem results in xattr
related crash
                 Project: rdiff-backup
            Submitted by: sblandford
            Submitted on: Sat 24 Oct 2009 07:37:00 GMT
                Category: None
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

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.
address@hidden ~]# cd /usr/local/include/libpng/
address@hidden 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





    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?27795>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]