Tue 26 Apr 2005 04:54:06 PM UTC, original submission:
i stumbled into this because i had the rdiff-backup testfiles.tar.gz open on a partition which a cronjob backs up... top of CVS runs into some troubles with long filenames. here's one of the problems:
mkdir test
cd test
mkdir `perl -e 'print "a" x 255`
cd `perl -e 'print "a" x 255`
touch `perl -e 'print "b" x 255`
cd ../..
rdiff-backup test dest
cd test
mv `perl -e 'print "a" x 255` `perl -e 'print "c" x 255`
cd ..
rdiff-backup test dest
basically the first rdiff-backup succeeds because it doesn't need to create longer filenames from the long names... the second needs to create increment files and it fails with the traceback
given below.
i think we should use magic random filenames in these situations and include mapping information in the metadata file to resolve the problem... it's not ideal, but it should do the job.
-dean
UpdateError aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [Errno 36] File name too long: 'dest/rdiff-backup-data/increments/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.2005-04-26T09:41:24-07:00.dir'
UpdateError aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb [Errno 36] File name too long: 'dest/rdiff-backup-data/increments/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.2005-04-26T09:41:24-07:00.snapshot.gz'
Traceback (most recent call last):
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff-backup", line 23, in ?
rdiff_backup.Main.Main(sys.argv[1:])
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/Main.py", line 280, in Main
take_action(rps)
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/Main.py", line 250, in take_action
elif action == "backup": Backup(rps[0], rps[1])
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/Main.py", line 300, in Backup
backup.Mirror_and_increment(rpin, rpout, incdir)
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/backup.py", line 51, in Mirror_and_increment
DestS.patch_and_increment(dest_rpath, source_diffiter, inc_rpath)
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/backup.py", line 229, in patch_and_increment
ITR(diff.index, diff)
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/rorpiter.py", line 275, in _call_
if self.finish_branches(index) is None:
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/rorpiter.py", line 227, in finish_branches
to_be_finished.end_process()
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/backup.py", line 573, in end_process
self.base_rp.rmdir()
File "/home/dean/software/rdiff-backup/rdiff-backup/rdiff_backup/rpath.py", line 780, in rmdir
self.conn.os.rmdir(self.path)
OSError: [Errno 39] Directory not empty: 'dest/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
Exception exceptions.TypeError: "'NoneType' object is not callable" in /usr/lib/python2.3/gzip.py:129: FutureWarning: hex()/oct() of negative int will return a signed string in Python 2.4 and up
return '<gzip ' + s[1:-1] + ' ' + hex(id(self)) + '>'
<bound method GzipFile.__del__ of <gzip open file 'dest/rdiff-backup-data/file_statistics.2005-04-26T09:42:04-07:00.data.gz', mode 'wb' at 0xb7e2baa0 0xb7b07aac>> ignored
Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method GzipFile.__del__ of <gzip open file 'dest/rdiff-backup-data/error_log.2005-04-26T09:42:04-07:00.data.gz', mode 'wb' at 0xb7e2b620 0xb7b079ac>> ignored
Exception exceptions.TypeError: "'NoneType' object is not callable" in ignored
|