[Bug 2645] New: --one-file-system semantics changed with 2.6.4 (bug?)

samba-bugs at samba.org samba-bugs at samba.org
Sun Apr 24 17:26:36 GMT 2005


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

           Summary: --one-file-system semantics changed with 2.6.4 (bug?)
           Product: rsync
           Version: 2.6.4
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: core
        AssignedTo: wayned at samba.org
        ReportedBy: dalgoda at ix.netcom.com
         QAContact: rsync-qa at samba.org


With 2.6.4, the semantics for -x have changed, and are actually quite bizarre
now.  I think it's a bug, but I'm not certain.

Take the following scenario:

thune:/usr/src/rsync/rsync-2.6.4# mount | grep -w -e a -e b
/dev/ram1 on /a type ext2 (rw)
/dev/ram2 on /a/b type ext2 (rw)

thune:/usr/src/rsync/rsync-2.6.4# find /a -type f
/a/b/e/g
/a/b/e/h
/a/b/f/i
/a/b/f/j
/a/c
/a/d
thune:/usr/src/rsync/rsync-2.6.4# find /a -type d
/a
/a/lost+found
/a/b
/a/b/lost+found
/a/b/e
/a/b/f

Now, with 2.6.3, I get this:

thune:/usr/src/rsync/rsync-2.6.3# ./rsync -a -n -e ssh --delete -x 
--rsync-path=`pwd`/rsync /a thune:/
building file list ... done

sent 114 bytes  received 20 bytes  17.87 bytes/sec
total size is 58  speedup is 0.43

That is, a no-op.  To be expected since I'm rsycning to the same machine.

With 2.6.4, I get this:
thune:/usr/src/rsync/rsync-2.6.4# ./rsync -a -n -e ssh --delete -x 
--rsync-path=`pwd`/rsync /a thune:/
building file list ... done
deleting a/b/lost+found/
deleting a/b/f/j
deleting a/b/f/i
deleting a/b/f/
deleting a/b/e/h
deleting a/b/e/g
deleting a/b/e/

That is, someone is following all the files under /a/b and trying to delete them
from destination, but of course, we see that /a/b is a different filesystem.

It definitely seems to be in the server code, as using 2.6.3 client and 2.6.4
server invokes the problem, but vice-versa does not.

What's really strange it is stops 2 directories deep.  That is, if I create some
 deeper entries:

thune:/usr/src/rsync/rsync-2.6.4# mkdir /a/b/e/k
thune:/usr/src/rsync/rsync-2.6.4# touch /a/b/e/k/{l,m}

thune:/usr/src/rsync/rsync-2.6.4# ./rsync -v -v -a -n -e ssh --delete -x 
--rsync-path=`pwd`/rsync /a thune:/
opening connection using ssh thune /usr/src/rsync/rsync-2.6.4/rsync --server
-vvnlogDtprx --delete . / 
building file list ... 
done
deleting in a
deleting a/b/lost+found/
deleting a/b/f/j
deleting a/b/f/i
deleting a/b/f/
deleting a/b/e/h
deleting a/b/e/g
deleting a/b/e/
delta-transmission enabled

It doesn't go down that deep!

Actually, if you look at 2.6.4pre1, it does:
thune:/usr/src/rsync/rsync-2.6.4pre1# ./rsync -a -n -e ssh --delete -x 
--rsync-path=`pwd`/rsync /a thune:/
building file list ... done
deleting a/b/lost+found/
deleting a/b/f/j
deleting a/b/f/i
deleting a/b/f/
deleting a/b/e/k/m
deleting a/b/e/k/l
deleting a/b/e/k/
deleting a/b/e/h
deleting a/b/e/g
deleting a/b/e/

sent 114 bytes  received 20 bytes  17.87 bytes/sec
total size is 58  speedup is 0.43

But starting with pre2 it doesn't:
thune:/usr/src/rsync/rsync-2.6.4pre2# ./rsync -a -n -e ssh --delete -x 
--rsync-path=`pwd`/rsync /a thune:/
building file list ... done
deleting a/b/lost+found/
deleting a/b/f/j
deleting a/b/f/i
deleting a/b/f/
deleting a/b/e/h
deleting a/b/e/g
deleting a/b/e/

sent 114 bytes  received 20 bytes  17.87 bytes/sec
total size is 58  speedup is 0.43


I'll try to look at the code later today, but no guaratees I'll get a chance to.

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


More information about the rsync mailing list