[Bug 1659950] Re: rsync -u --inplace --partial -a can't resume transfer
Paride Legovini
1659950 at bugs.launchpad.net
Wed Oct 6 16:54:24 UTC 2021
Hello Nahuel,
According to your reasoning I assume the "root" issue should still
affect the versions of rsync shipped with the newer Ubuntu releases.
I agree it would be nice for the behavior you describe to be documented,
but I don't think it's worth patching the Ubuntu package for it. I
recognize we have a papercut here, but I don't think the fix for it
belongs to Ubuntu; it should instead be driven (and thus also validated)
upstream. For this reason I'm marking this bug as a Won't Fix. Should
you disagree with my assessment please comment back and set the bug
status back to New, we'll look at it again. Thanks!
** Changed in: rsync (Ubuntu)
Status: Triaged => Opinion
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rsync in Ubuntu.
https://bugs.launchpad.net/bugs/1659950
Title:
rsync -u --inplace --partial -a can't resume transfer
Status in rsync package in Ubuntu:
Opinion
Bug description:
Suppose you have a file in hostA:
hostA$ ls -l /tmp/files
-rw-rw-r-- 2 root root 563016 Jan 10 15:01 test.txt
You download it from the hostB using:
hostB$ rsync -u --inplace --partial -a hostA::files/* .
If the transfer is aborted, hostB will get only a partial file:
hostB$ ls -l /tmp/files
-rw-rw-r-- 2 root root 2024 Jan 11 18:00 test.txt
BUT the ctime/mtime of hostB/test.txt now is NEWER than hostA/test.txt(and mtime == ctime). So, if you run the same rsync -u command again:
hostB$ rsync -u --inplace --partial -a hostA::files/* .
Rsync will SKIP THE FILE, because hostB/test.txt is "newer" than
hostA/test.txt. So you CAN'T resume using rsync -u command, and you
will think there are no differences.
To avoid this bug, rsync must create the file with ctime=mtime=0. And
if the file already exists before transfer, rsync -u must not change
his current ctime/mtime. Ctime/mtime must be updated ONLY after the
transfer was successfully completed.
Note this is really need because there are scenarios where checksum
comparison can't be used, only comparison by time. For example, to
avoid deleting changes made in hostB to test.txt. Also I need to use
--inplace.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rsync/+bug/1659950/+subscriptions
More information about the foundations-bugs
mailing list