[Bug 8856] New: --hard-links does not handle hard-linked symlinks correctly on FreeBSD

samba-bugs at samba.org samba-bugs at samba.org
Tue Apr 10 19:55:07 MDT 2012


https://bugzilla.samba.org/show_bug.cgi?id=8856

           Summary: --hard-links does not handle hard-linked symlinks
                    correctly on FreeBSD
           Product: rsync
           Version: 3.0.7
          Platform: All
        OS/Version: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P5
         Component: core
        AssignedTo: wayned at samba.org
        ReportedBy: ronaldj at infoxchange.net.au
         QAContact: rsync-qa at samba.org


Creating hard-linked symlinks fails on FreeBSD RELEASE-8.2.

Simple test case:

# uname -sr
FreeBSD 8.2-RELEASE
# ls -liR
total 4
117761 drwxr-xr-x  2 root  wheel  512 Apr 11 10:31 a
117762 drwxr-xr-x  2 root  wheel  512 Apr 11 11:42 b

./a:
total 0
117763 -rw-r--r--  2 root  wheel  0 Apr 11 10:30 f
117763 -rw-r--r--  2 root  wheel  0 Apr 11 10:30 lf
117764 lrwxr-xr-x  2 root  wheel  1 Apr 11 10:30 ls1 -> f
117765 lrwxr-xr-x  2 root  wheel  6 Apr 11 10:30 ls2 -> /x/y/z
117764 lrwxr-xr-x  2 root  wheel  1 Apr 11 10:30 s1 -> f
117765 lrwxr-xr-x  2 root  wheel  6 Apr 11 10:30 s2 -> /x/y/z

./b:
total 0
# rsync -avH a/ b
sending incremental file list
./
lf
s1 -> f
rsync: link "/root/test/b/ls1" => s1 failed: No such file or directory (2)
s2 -> /x/y/z
rsync: link "/root/test/b/ls2" => s2 failed: No such file or directory (2)
f => lf

sent 155 bytes  received 50 bytes  410.00 bytes/sec
total size is 14  speedup is 0.07
rsync error: some files/attrs were not transferred (see previous errors) (code
23) at main.c(1042) [sender=3.0.7]
# ls -liR
total 4
117761 drwxr-xr-x  2 root  wheel  512 Apr 11 10:31 a
117762 drwxr-xr-x  2 root  wheel  512 Apr 11 10:31 b

./a:
total 0
117763 -rw-r--r--  2 root  wheel  0 Apr 11 10:30 f
117763 -rw-r--r--  2 root  wheel  0 Apr 11 10:30 lf
117764 lrwxr-xr-x  2 root  wheel  1 Apr 11 10:30 ls1 -> f
117765 lrwxr-xr-x  2 root  wheel  6 Apr 11 10:30 ls2 -> /x/y/z
117764 lrwxr-xr-x  2 root  wheel  1 Apr 11 10:30 s1 -> f
117765 lrwxr-xr-x  2 root  wheel  6 Apr 11 10:30 s2 -> /x/y/z

./b:
total 0
117768 -rw-r--r--  2 root  wheel  0 Apr 11 10:30 f
117768 -rw-r--r--  2 root  wheel  0 Apr 11 10:30 lf
117766 lrwxr-xr-x  1 root  wheel  1 Apr 11 10:30 s1 -> f
117767 lrwxr-xr-x  1 root  wheel  6 Apr 11 10:30 s2 -> /x/y/z
# rsync --version
rsync  version 3.0.7  protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 32-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, no iconv, symtimes

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.


So it not only doesn't hard-link the symlinks in the target directory, it does
not even create any in the first place.


Following the exact same steps on Debian squeeze for verification:

# uname -sr
Linux 2.6.32-5-686-bigmem
# ls -liR
.:
total 8
193954 drwxr-xr-x 2 root root 4096 Apr 11 10:50 a
193955 drwxr-xr-x 2 root root 4096 Apr 11 11:49 b

./a:
total 0
193956 -rw-r--r-- 2 root root 0 Apr 11 10:49 f
193956 -rw-r--r-- 2 root root 0 Apr 11 10:49 lf
193957 lrwxrwxrwx 2 root root 1 Apr 11 10:49 ls1 -> f
193958 lrwxrwxrwx 2 root root 6 Apr 11 10:49 ls2 -> /x/y/z
193957 lrwxrwxrwx 2 root root 1 Apr 11 10:49 s1 -> f
193958 lrwxrwxrwx 2 root root 6 Apr 11 10:49 s2 -> /x/y/z

./b:
total 0
# rsync -avH a/ b
sending incremental file list
./
lf
s1 -> f
ls1 => s1
s2 -> /x/y/z
ls2 => s2
f => lf

sent 175 bytes  received 70 bytes  490.00 bytes/sec
total size is 14  speedup is 0.06
# ls -liR
.:
total 8
193954 drwxr-xr-x 2 root root 4096 Apr 11 10:50 a
193955 drwxr-xr-x 2 root root 4096 Apr 11 10:50 b

./a:
total 0
193956 -rw-r--r-- 2 root root 0 Apr 11 10:49 f
193956 -rw-r--r-- 2 root root 0 Apr 11 10:49 lf
193957 lrwxrwxrwx 2 root root 1 Apr 11 10:49 ls1 -> f
193958 lrwxrwxrwx 2 root root 6 Apr 11 10:49 ls2 -> /x/y/z
193957 lrwxrwxrwx 2 root root 1 Apr 11 10:49 s1 -> f
193958 lrwxrwxrwx 2 root root 6 Apr 11 10:49 s2 -> /x/y/z

./b:
total 0
193961 -rw-r--r-- 2 root root 0 Apr 11 10:49 f
193961 -rw-r--r-- 2 root root 0 Apr 11 10:49 lf
193959 lrwxrwxrwx 2 root root 1 Apr 11 10:49 ls1 -> f
193960 lrwxrwxrwx 2 root root 6 Apr 11 10:49 ls2 -> /x/y/z
193959 lrwxrwxrwx 2 root root 1 Apr 11 10:49 s1 -> f
193960 lrwxrwxrwx 2 root root 6 Apr 11 10:49 s2 -> /x/y/z
# rsync --version
rsync  version 3.0.7  protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.



Apologies if this has already been fixed or/and reported - I did search
Bugzilla but could not find anything.

-- 
Configure bugmail: https://bugzilla.samba.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the rsync mailing list