Thu 04 Oct 2007 02:08:41 PM UTC, original submission:
rdiff-backup will crash when used with a Mac OS X case-insensitive file system, if a folder that has been previously backed up is moved to a new name that differs only by case. I am using rdiff-backup 1.1.14, Python 2.3.5, Mac OS X 10.4.10.
Here is a shell script which crashes on Mac OS X:
**********************************************************************
#!/bin/bash
mkdir BackupTesting
cd BackupTesting
mkdir -p BackMeUp/folder
mkdir Backups
rdiff-backup BackMeUp Backups/BackMeUp
mv BackMeUp/folder BackMeUp/Folder
rdiff-backup BackMeUp Backups/BackMeUp
**********************************************************************
Here is the result:
Exception 'Path: Backups/BackMeUp/rdiff-backup-data/increments/folder.2007-10-04T09:57:08-04:00.dir
Index: ('folder.2007-10-04T09:57:08-04:00.dir',)
Data: {'carbonfile': {'flags': 0, 'createDate': -1020616295, 'type': '\x00\x00\x00\x00', 'location': (0, 0), 'creator': '\x00\x00\x00\x00'}, 'uid': 501, 'perms': 493, 'type': 'reg', 'gname': 'balhoff', 'ctime': 1191506254, 'devloc': 234881040L, 'uname': 'balhoff', 'nlink': 1, 'gid': 501, 'mtime': 1191506201, 'atime': 1191506254, 'inode': 1901841L, 'size': 0L}' raised of class 'exceptions.AssertionError':
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 302, in error_check_Main
try: Main(arglist)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 322, in Main
take_action(rps)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 278, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 341, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/backup.py", line 229, in patch_and_increment
ITR(diff.index, diff)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/rorpiter.py", line 284, in _call_
branch.start_process(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/backup.py", line 699, in start_process
inc_prefix)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/increment.py", line 41, in Increment
elif mirror.isdir(): incrp = makedir(mirror, incpref)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/increment.py", line 94, in makedir
dirsign = get_inc(incpref, "dir")
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/increment.py", line 114, in get_inc
assert not incrp.lstat(), incrp
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 23, in ?
rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 302, in error_check_Main
try: Main(arglist)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 322, in Main
take_action(rps)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 278, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/Main.py", line 341, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/backup.py", line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/backup.py", line 229, in patch_and_increment
ITR(diff.index, diff)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/rorpiter.py", line 284, in _call_
branch.start_process(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/backup.py", line 699, in start_process
inc_prefix)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/increment.py", line 41, in Increment
elif mirror.isdir(): incrp = makedir(mirror, incpref)
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/increment.py", line 94, in makedir
dirsign = get_inc(incpref, "dir")
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/rdiff_backup/increment.py", line 114, in get_inc
assert not incrp.lstat(), incrp
AssertionError: Path: Backups/BackMeUp/rdiff-backup-data/increments/folder.2007-10-04T09:57:08-04:00.dir
Index: ('folder.2007-10-04T09:57:08-04:00.dir',)
Data: {'carbonfile': {'flags': 0, 'createDate': -1020616295, 'type': '\x00\x00\x00\x00', 'location': (0, 0), 'creator': '\x00\x00\x00\x00'}, 'uid': 501, 'perms': 493, 'type': 'reg', 'gname': 'balhoff', 'ctime': 1191506254, 'devloc': 234881040L, 'uname': 'balhoff', 'nlink': 1, 'gid': 501, 'mtime': 1191506201, 'atime': 1191506254, 'inode': 1901841L, 'size': 0L}
|