bugrdiff-backup - Bugs: bug #12823, long filenames lead to traceback

 
 

bug #12823: long filenames lead to traceback

Submitted by:  dean gaudet <dgaudet>
Submitted on:  Tue 26 Apr 2005 04:54:06 PM UTC  
 
Category: NoneSeverity: 1 - Wish
Item Group: NoneStatus: None
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.

 

Thu 24 Nov 2005 05:08:09 AM UTC, comment #3:

Fixed in CVS!

Benedict Escoto <bescoto>
Project Administrator
Fri 29 Apr 2005 01:51:41 AM UTC, comment #2:

This is a very old bug (it's listed in the BUGS section of the man page). Random filenames + mapping as you said seems like the only answer. We also need mapping for keeping track of moved files, so this may be killing two birds with one stone if we do it right.

Benedict Escoto <bescoto>
Project Administrator
Tue 26 Apr 2005 04:54:50 PM UTC, comment #1:

woops i had typos in my sample script:

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

dean gaudet <dgaudet>
Project Administrator
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

dean gaudet <dgaudet>
Project Administrator

 

(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

 

CC list is empty

 

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
Thu 24 Nov 2005 05:08:09 AM UTCbescotoOpen/ClosedOpen=>Closed
Sun 19 Jun 2005 08:56:42 PM UTCdgaudetSeverity3 - Normal=>1 - Wish

Back to the top


Powered by Savane 3.1-cleanup1