rdiff-backup-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [rdiff-backup-users] CIFS filesystem and symbolic links to other dir


From: Ian Jones
Subject: Re: [rdiff-backup-users] CIFS filesystem and symbolic links to other directories
Date: Sun, 06 Jul 2008 16:31:22 +0200
User-agent: Thunderbird 2.0.0.14 (Windows/20080421)

Hi Andrew,

Thanks for your help. The information you have requested is below.

Regards,
Ian

Andrew Ferguson a écrit :

On Jul 6, 2008, at 6:19 AM, Ian Jones wrote:

Hello. I have the following problem.

I am trying to use rdiff-backup to backup from a Linux (Debian lenny) machine to a CIFS mounted filesystem (which is located on a Droboshare - http://www.drobo.com.)

# python -V
Python 2.5.2
# rdiff-backup -V
rdiff-backup 1.1.16


It works fine if I use --exclude-symbolic-links, but without this I get the errors posted below.

Specifically:

If I try to backup a directory containing symbolic links to the same directory, it works:
# ls –l
total 0
-rw-r--r-- 1 root root 0 2008-07-06 04:58 index.html
lrwxrwxrwx 1 root root 10 2008-07-06 05:03 test -> index.html
# rdiff-backup --no-hard-links . /drobo/MX/www
# ls -l /drobo/MX/www/
total 4
-rw-r--r-- 1 root root 0 2008-07-06 04:58 index.html
drwx------ 3 root daemon 0 2008-07-06 05:22 rdiff-backup-data
lrwxrwxrwx 1 root daemon 10 2008-07-06 05:22 test -> index.html

However, if I link to a file in another directory:
# echo "test" > ../test2
# ln -s ../test2
# ls –l
total 0
-rw-r--r-- 1 root root 0 2008-07-06 04:58 index.html
lrwxrwxrwx 1 root root 10 2008-07-06 05:03 test -> index.html
lrwxrwxrwx 1 root root 8 2008-07-06 05:27 test2 -> ../test2
# rdiff-backup --no-hard-links . /drobo/MX/www
Exception '[Errno 2] No such file or directory' raised of class '<type 'exceptions.OSError'>':


Hi Ian,

That's a pretty interesting bug you have there. I'd say the chance is pretty good that it is even a bug in CIFS and not rdiff-backup. But, to be safe, can you try a few things?

1) Run rdiff-backup with '-v5' .... this will print out the name of each file as it is being backed-up, just so we can make sure that it is failing when manipulating the file 'test2'. This will also print out information about which filesystem abilities rdiff-backup has detected, please send those along as well.

# ls -l
total 0
-rw-r--r-- 1 root root 0 2008-07-06 04:58 index.html
lrwxrwxrwx 1 root root 8 2008-07-06 09:56 test2 -> ../test2
# rdiff-backup -v 5 --no-hard-links . /drobo/MX/test &> /tmp/rd-out
# cat /tmp/rd-out
Exception '[Errno 2] No such file or directory' raised of class '<type 'exceptions.OSError'>': File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 302, in error_check_Main
   try: Main(arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 322, in Main
   take_action(rps)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 278, in take_action
   elif action == "backup": Backup(rps[0], rps[1])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 344, in Backup
   backup.Mirror(rpin, rpout)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 38, in Mirror
   DestS.patch(dest_rpath, source_diffiter)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 232, in patch
   ITR(diff.index, diff)
File "/var/lib/python-support/python2.5/rdiff_backup/rorpiter.py", line 281, in __call__
   last_branch.fast_process(*args)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 531, in fast_process
   rpath.rename(tf, mirror_rp)
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 255, in rename
   rp_source.conn.os.rename(rp_source.path, rp_dest.path)

Using rdiff-backup version 1.1.16
ACLs not supported by filesystem at .
escape_dos_devices not required by filesystem at .
-----------------------------------------------------------------
Detected abilities for source (read only) file system:
 Access control lists                         Off
 Extended attributes                          On
 Case sensitivity                             On
 Escape DOS devices                           Off
 Mac OS X style resource forks                Off
 Mac OS X Finder information                  Off
-----------------------------------------------------------------
Directories on file system at /drobo/MX/test/rdiff-backup-data/rdiff-backup.tmp.0 are not fsyncable.
Assuming it's unnecessary.
Extended attributes not supported by filesystem at /drobo/MX/test/rdiff-backup-data/rdiff-backup.tmp.0 ACLs not supported by filesystem at /drobo/MX/test/rdiff-backup-data/rdiff-backup.tmp.0 escape_dos_devices not required by filesystem at /drobo/MX/test/rdiff-backup-data/rdiff-backup.tmp.0
-----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
 Ownership changing                           On
 Hard linking                                 N/A
 fsync() directories                          Off
 Directory inc permissions                    On
 High-bit permissions                         On
 Symlink permissions                          Off
 Extended filenames                           On
 Windows reserved filenames                   On
 Access control lists                         Off
 Extended attributes                          Off
 Case sensitivity                             On
 Escape DOS devices                           Off
 Mac OS X style resource forks                Off
 Mac OS X Finder information                  Off
-----------------------------------------------------------------
Backup: must_escape_dos_devices = 0
Starting mirror . to /drobo/MX/test
Processing changed file .
Processing changed file index.html
Processing changed file test2
Traceback (most recent call last):
 File "/usr/bin/rdiff-backup", line 23, in <module>
   rdiff_backup.Main.error_check_Main(sys.argv[1:])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 302, in error_check_Main
   try: Main(arglist)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 322, in Main
   take_action(rps)
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 278, in take_action
   elif action == "backup": Backup(rps[0], rps[1])
File "/var/lib/python-support/python2.5/rdiff_backup/Main.py", line 344, in Backup
   backup.Mirror(rpin, rpout)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 38, in Mirror
   DestS.patch(dest_rpath, source_diffiter)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 232, in patch
   ITR(diff.index, diff)
File "/var/lib/python-support/python2.5/rdiff_backup/rorpiter.py", line 281, in __call__
   last_branch.fast_process(*args)
File "/var/lib/python-support/python2.5/rdiff_backup/backup.py", line 531, in fast_process
   rpath.rename(tf, mirror_rp)
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 255, in rename
   rp_source.conn.os.rename(rp_source.path, rp_dest.path)
OSError: [Errno 2] No such file or directory



2) Try running with CIFS's Linux extensions disabled. To do this, unmount the CIFS share, then do:

$ echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled

as root. After doing that, remount the filesystem and try again. Again, run rdiff-backup with -v5 and send along the output.

# umount /drobo/
# cat /proc/fs/cifs/LinuxExtensionsEnabled
1
# echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled
# mount /drobo/
# cat /proc/fs/cifs/LinuxExtensionsEnabled
0
# rdiff-backup -v 5 --no-hard-links . /drobo/MX/test-again &> /tmp/rd-out
# cat /tmp/rd-out
SpecialFileError test2 [Errno 95] Operation not supported
Using rdiff-backup version 1.1.16
ACLs not supported by filesystem at .
escape_dos_devices not required by filesystem at .
-----------------------------------------------------------------
Detected abilities for source (read only) file system:
 Access control lists                         Off
 Extended attributes                          On
 Case sensitivity                             On
 Escape DOS devices                           Off
 Mac OS X style resource forks                Off
 Mac OS X Finder information                  Off
-----------------------------------------------------------------
Directories on file system at /drobo/MX/test-again/rdiff-backup-data/rdiff-backup.tmp.0 are not fsyncable.
Assuming it's unnecessary.
Extended attributes not supported by filesystem at /drobo/MX/test-again/rdiff-backup-data/rdiff-backup.tmp.0 ACLs not supported by filesystem at /drobo/MX/test-again/rdiff-backup-data/rdiff-backup.tmp.0 escape_dos_devices not required by filesystem at /drobo/MX/test-again/rdiff-backup-data/rdiff-backup.tmp.0
-----------------------------------------------------------------
Detected abilities for destination (read/write) file system:
 Ownership changing                           On
 Hard linking                                 N/A
 fsync() directories                          Off
 Directory inc permissions                    On
 High-bit permissions                         On
 Symlink permissions                          Off
 Extended filenames                           On
 Windows reserved filenames                   On
 Access control lists                         Off
 Extended attributes                          Off
 Case sensitivity                             On
 Escape DOS devices                           Off
 Mac OS X style resource forks                Off
 Mac OS X Finder information                  Off
-----------------------------------------------------------------
Backup: must_escape_dos_devices = 0
Starting mirror . to /drobo/MX/test-again
Processing changed file .
Processing changed file index.html
Processing changed file test2
Exception '[Errno 95] Operation not supported' raised of class '<type 'exceptions.OSError'>': File "/var/lib/python-support/python2.5/rdiff_backup/robust.py", line 32, in check_common_error
   try: return function(*args)
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 107, in copy
   rpout.symlink(rpin.readlink())
File "/var/lib/python-support/python2.5/rdiff_backup/rpath.py", line 928, in symlink
   self.conn.os.symlink(linktext, self.path)




3) Lastly, what CIFS version are you running? You can get that from `cat /proc/fs/cifs/DebugData`

# cat /proc/fs/cifs/DebugData
Display Internal CIFS Data Structures for Debugging
---------------------------------------------------
CIFS Version 1.52
Active VFS Requests: 0
Servers:
1) Name: 192.168.71.5  Domain: LEJARDIN Mounts: 1 OS: Unix
       NOS: Samba 3.0.14a      Capability: 0xe3fd
       SMB session status: 1   TCP status: 1
       Local Users To Server: 1 SecMode: 0x3 Req On Wire: 0
MIDs:

Shares:
1) \\DroboShare\drobo Uses: 1 Type: NTFS DevInfo: 0x0 Attributes: 0xb
PathComponentMax: 255 Status: 1 type: 0






reply via email to

[Prev in Thread] Current Thread [Next in Thread]