bugrdiff-backup - Bugs: bug #27961, Fails on long filenames with encfs...

 
 

bug #27961: Fails on long filenames with encfs over sshfs

Submitted by:  None
Submitted on:  Fri 06 Nov 2009 04:37:44 PM UTC  
 
Category:  None Severity:  3 - Normal
Item Group:  None Status:  None
Privacy:  Public Assigned to:  None
Open/Closed:  Open

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Tue 12 Jan 2010 10:15:14 AM UTC, comment #3: 

Hi,

Just to confirm that I am having the same problem. Funny thing that I am using exactly same setup - rdiff over encfs over sshfs.

Iam getting the following message:

Bad message: '/home/backups0/mnt/backups0_raw/rdiff-backup-data/increments/backup/diskstation/DiskStation_00113203E642/SHARE/System Admin/Microsoft/14 Dell Licenses Office Small Business/SW_CD_Office_Small_Business_2007_W32_English_1_PA_BP_MLF_X12-19200.EXE, SW_CD_Office_Small_Business_2007_W32_English_1_PA_BP_MLF_X12-19200.EXEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'

Please fix ASAP, many thanks! :)

utis <andriusk>
Fri 06 Nov 2009 08:40:23 PM UTC, comment #2: 

I should have added that this only fails when using encfs over sshfs, either one on their own seems to be fine. The minimum filename length required for this to fail on my machine is 126.

Philipp Weis <pweis>
Fri 06 Nov 2009 04:45:19 PM UTC, comment #1: 

Sorry for submitting this anonymously, now I'm logged in. I'm also including the transcript here again, since the attachment ended up getting an annoying mime type.

Philipp

$ mkdir orig remote remote-crypt
$ touch orig/ChandraRaghavanRuzzoSmolenskyTiwari_1997_ComputationalComplexity_TheElectricalResistanceOfAGraphCapturesItsCommuteAndCoverTimes.pdf
$ sshfs -o workaround=rename marvin:nobackup/tmp/rdiff-enc-test remote-crypt
$ encfs "$(pwd)"/remote "$(pwd)"/remote-crypt
Creating new encrypted volume.
Please choose from one of the following options:
 enter "x" for expert configuration mode,
 enter "p" for pre-configured paranoia mode,
 anything else, or an empty line will select standard mode.
?>

Standard configuration selected.

Configuration finished.  The filesystem to be created has
the following properties:
Filesystem cipher: "ssl/aes", version 2:2:1
Filename encoding: "nameio/block", version 3:0:1
Key Size: 192 bits
Block Size: 1024 bytes
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File holes passed through to ciphertext.

Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism.  However, the password can be changed
later using encfsctl.

New Encfs Password:
Verify Encfs Password:
$ rdiff-backup --terminal-verbosity 5 orig remote-crypt
Using rdiff-backup version 1.2.8
Unable to import win32security module. Windows ACLs
not supported by filesystem at orig
escape_dos_devices not required by filesystem at orig
-----------------------------------------------------------------
Detected abilities for source (read only) file system:
  Access control lists                         On
  Extended attributes                          On
  Windows access control lists                 Off
  Case sensitivity                             On
  Escape DOS devices                           Off
  Escape trailing spaces                       Off
  Mac OS X style resource forks                Off
  Mac OS X Finder information                  Off
-----------------------------------------------------------------
Warning: hard linking not supported by filesystem at remote-crypt/rdiff-backup-data
Extended attributes not supported by filesystem at remote-crypt/rdiff-backup-data/rdiff-backup.tmp.0
POSIX ACLs not supported by filesystem at remote-crypt/rdiff-backup-data/rdiff-backup.tmp.0
Unable to import win32security module. Windows ACLs
not supported by filesystem at remote-crypt/rdiff-backup-data/rdiff-backup.tmp.0
escape_dos_devices not required by filesystem at remote-crypt/rdiff-backup-data/rdiff-backup.tmp.0
-----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
  Ownership changing                           Off
  Hard linking                                 N/A
  fsync() directories                          On
  Directory inc permissions                    On
  High-bit permissions                         On
  Symlink permissions                          Off
  Extended filenames                           On
  Windows reserved filenames                   Off
  Access control lists                         Off
  Extended attributes                          Off
  Windows access control lists                 Off
  Case sensitivity                             On
  Escape DOS devices                           Off
  Escape trailing spaces                       Off
  Mac OS X style resource forks                Off
  Mac OS X Finder information                  Off
-----------------------------------------------------------------
Backup: must_escape_dos_devices = 0
Starting mirror orig to remote-crypt
Processing changed file .
Processing changed file ChandraRaghavanRuzzoSmolenskyTiwari_1997_ComputationalComplexity_TheElectricalResistanceOfAGraphCapturesItsCommuteAndCoverTimes.pdf
Exception '[Errno 74] Bad message: 'remote-crypt/rdiff-backup-data/increments/ChandraRaghavanRuzzoSmolenskyTiwari_1997_ComputationalComplexity_TheElectricalResistanceOfAGraphCapturesItsCommuteAndCoverTimes.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'' raised of class '<type 'exceptions.OSError'>':
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 304, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 324, in Main
    take_action(rps)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 280, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 346, in Backup
    backup.Mirror(rpin, rpout)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/backup.py", line 38, in Mirror
    DestS.patch(dest_rpath, source_diffiter)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/backup.py", line 232, in patch
    ITR(diff.index, diff)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rorpiter.py", line 281, in _call_
    last_branch.fast_process(*args)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/backup.py", line 526, in fast_process
    self.CCPP.get_rorps(index), self.basis_root_rp)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 205, in get_mirror_inc_rps
    alt_inc, inc_rp = find_inc_pair(index, mirror_rp, alt_mirror, alt_inc)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 191, in find_inc_pair
    if check_new_index(inc_root, trial_inc_index, make_dirs = 1):
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 127, in check_new_index
    rp = wrap_call(base.new_index, index)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 111, in wrap_call
    try: result = func(*args)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 1157, in new_index
    return self.__class__(self.conn, self.base, index)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 884, in _init_
    else: self.setdata()
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 908, in setdata
    self.data = self.conn.rpath.make_file_dict(self.path)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 287, in make_file_dict
    return C.make_file_dict(filename)

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 30, in <module>
    rdiff_backup.Main.error_check_Main(sys.argv[1:])
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 304, in error_check_Main
    try: Main(arglist)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 324, in Main
    take_action(rps)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 280, in take_action
    elif action == "backup": Backup(rps[0], rps[1])
  File "/usr/lib/pymodules/python2.5/rdiff_backup/Main.py", line 346, in Backup
    backup.Mirror(rpin, rpout)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/backup.py", line 38, in Mirror
    DestS.patch(dest_rpath, source_diffiter)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/backup.py", line 232, in patch
    ITR(diff.index, diff)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rorpiter.py", line 281, in _call_
    last_branch.fast_process(*args)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/backup.py", line 526, in fast_process
    self.CCPP.get_rorps(index), self.basis_root_rp)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 205, in get_mirror_inc_rps
    alt_inc, inc_rp = find_inc_pair(index, mirror_rp, alt_mirror, alt_inc)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 191, in find_inc_pair
    if check_new_index(inc_root, trial_inc_index, make_dirs = 1):
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 127, in check_new_index
    rp = wrap_call(base.new_index, index)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/longname.py", line 111, in wrap_call
    try: result = func(*args)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 1157, in new_index
    return self.__class__(self.conn, self.base, index)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 884, in _init_
    else: self.setdata()
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 908, in setdata
    self.data = self.conn.rpath.make_file_dict(self.path)
  File "/usr/lib/pymodules/python2.5/rdiff_backup/rpath.py", line 287, in make_file_dict
    return C.make_file_dict(filename)
OSError: [Errno 74] Bad message: 'remote-crypt/rdiff-backup-data/increments/ChandraRaghavanRuzzoSmolenskyTiwari_1997_ComputationalComplexity_TheElectricalResistanceOfAGraphCapturesItsCommuteAndCoverTimes.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
$ cp orig/ChandraRaghavanRuzzoSmolenskyTiwaari_1997_ComputationalComplexity_TheElectricalResistanceOfAGraphCapturesItsCommutteAndCoverTimes.pdf remote-crypt/
$ ll remote-crypt/
total 4.0K
-rw-r--r-- 1 pweis pweis    0 2009-11-06 11:26 ChandraRaghavanRuzzoSmolenskyTiwari_1997_ComputationalComplexity_TheElectricalResistanceOfAGraphCapturesItsCommuteAndCoverTimes.pdf
drwx------ 1 pweis pweis 4.0K 2009-11-06 11:25 rdiff-backup-data

Philipp Weis <pweis>
Fri 06 Nov 2009 04:37:44 PM UTC, original submission:  

I've been trying to get rdiff-backup to run over encfs and sshfs on a remote host, and after some initial troubles it's working fine now except for really long filenames. This doesn't seem to be due do any limitations of encfs, sshfs or the underlying host filesystem, because I can copy a file with a long name just fine from the source to the backup target.

This is on a up-to-date Debian unstable machine, with rdiff-backup 1.2.8-5, encfs 1.5.2-1+b1 and sshfs 2.2-1.

A transcript of what exactly is happening is attached.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #19006:  rdiff.script added by None (9KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by andriusk (Posted a comment)
  • -email is unavailable- added by pweis (Posted a comment)
  • -email is unavailable- added by pweis
  •  

    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
    2009-11-06 pweis Carbon-Copy- => Added pweis
    2009-11-06 None Attached File- => Added rdiff.script, #19006

    Back to the top


    Powered by Savane 3.5