Bug 3768 - --no-specials in Rsync 2.6.8 breaks compatibility with 2.6.0-r6 Mirroring system
Summary: --no-specials in Rsync 2.6.8 breaks compatibility with 2.6.0-r6 Mirroring system
Status: RESOLVED WONTFIX
Alias: None
Product: rsync
Classification: Unclassified
Component: core (show other bugs)
Version: 2.6.8
Hardware: x86 Linux
: P3 normal (vote)
Target Milestone: ---
Assignee: Wayne Davison
QA Contact: Rsync QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-10 03:14 UTC by bob predaina
Modified: 2006-07-09 22:12 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bob predaina 2006-05-10 03:14:56 UTC
I am publishing a small linux distribution (The Jackass! Project) which uses tiered array of rsync servers to act as a mirror distribution system.  One of our mirrors updated to rsync 2.6.8 (on Gentoo).  as a result, it is no longer capable of performing transactions with the mirror above it.  the host mirror is running rsync 2.6.0-r6 on Gentoo vServer.  it appears that the "--no-specials" parameter is now a default command line parameter, and this prevents mirrors from being able to perform an rsync.  the server rsyncd.log reports the following error:


<snip>
2006/05/09 17:04:45 [15633] rsync on script from mojope (82.117.33.58)
2006/05/09 22:04:45 [15633] on remote machine: --no-specials: unknown option
2006/05/09 22:04:45 [15633] rsync: on remote machine: --no-specials: unknown option
2006/05/09 22:04:45 [15633] rsync error: requested action not supported (code 4) at clientserver.c(461)
</snip>

Unfortunately, this is a major show-stopper, as it has brought our entire mirroring system to a halt.  Nobody using the new version of rsync can sync with the host mirror above it.
Comment 1 Wayne Davison 2006-05-10 09:58:13 UTC
The only time that rsync sends the --no-specials option is when the user has requested only the transfer of devices and not special files.  This undoubtedly means that the options passed to rsync used the --devices option, but not -D or -a. The --devices option changed slightly in meaning in 2.6.7 to only match block and character devices, while the -D option remained the same.

So, the easiest solution is to change the code running rsync to use the -D (or the -a) option. Another solution is to define a popt alias on the initiating system that makes --devices have its old meaning by putting this in either /etc/popt or the user's ~/.popt file:

    rsync alias --devices -D

Aliasing the option globally is probably not that good of an idea, but for this option it might not be that bad.  However, if it's possible to change how rsync is run, that is the best solution.
Comment 2 Wayne Davison 2006-07-09 22:12:35 UTC
Closing this since there is a compatibile way to use all versions of rsync (using -D) and the new meaning of --devices is as designed.