Bug 11893 - rsync should check local file access permission before connecting to remote end
Summary: rsync should check local file access permission before connecting to remote end
Status: NEW
Alias: None
Product: rsync
Classification: Unclassified
Component: core (show other bugs)
Version: 3.1.2
Hardware: All All
: P5 minor (vote)
Target Milestone: ---
Assignee: Wayne Davison
QA Contact: Rsync QA Contact
Depends on:
Reported: 2016-05-04 09:04 UTC by Rami Lehti
Modified: 2019-02-25 17:23 UTC (History)
1 user (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Rami Lehti 2016-05-04 09:04:05 UTC
I'm using rsync to transfer large OS image files around and sometimes the local permissions change so that the sender does not have access to the source file any more.

Having previously transferred the file there is already a file of matching size on the target host. Now attempting the transfer again rsync connects to the remote end and the remote end begins to do its checks before the transfer proper. Because the image file is large this will take a long time (10 minutes). 

After this rsync will report the "Permission denied" error for the local file. 

It would be more user-friendly to check the local file access permissions before doing anything time consuming and exit with an error as soon as possible.

Please consider changing this behaviour.
Comment 1 BruXy 2019-02-25 17:22:22 UTC

I have fallen into the same trap described in this issue:

$ rsync -avvHPS --rsh='ssh' big_cache.tar.bz bruxy@remote:/mnt/data_cache/                                                                              
opening connection using: ssh -l bruxy remote rsync --server -vvlHogDtprSe.iLsfx --partial . /mnt/data_cache/  (10 args)
sending incremental file list
delta-transmission enabled
697,513,154,774 100%  106.35MB/s    1:44:15 (xfr#1, to-chk=0/1)
rsync: mkstemp "/mnt/data_cache/.big_cache.tar.bz.mQWodj" failed: Permission denied (13)
total: matches=0  hash_hits=0  false_alarms=0 data=697513154774

sent 697,683,446,175 bytes  received 163 bytes  111,513,377.50 bytes/sec
total size is 697,513,154,774  speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]

The error message is displayed after this 650 GB file was transferred, but not saved in the remote directory because of wrong permission. It would be nice to receive this error sooner :)
Comment 2 BruXy 2019-02-25 17:23:02 UTC
I am using:

rsync  version 3.1.1  protocol version 31