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:  None Severity:  1 - Wish
Item Group:  None Status:  None
Privacy:  Public Assigned 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 Files:
   
   
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 add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

 

 

Follow 2 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-11-24 bescoto Open/ClosedOpen => Closed
2005-06-19 dgaudet Severity3 - Normal => 1 - Wish

Back to the top


Powered by Savane 3.5