make_file() could ignore ENODEV errors (from afs filesystem)
dwd at bell-labs.com
Wed Jun 19 14:15:02 EST 2002
I think it would be better to fix the bug of rsync doing a readlink on
excluded files. What version are you using? There was a bug related to
that a version or two back. What command line are you using? Somebody
reported a similar problem recently with an infrequently used option, I
think it was -R but I can't remember for sure.
On Wed, Jun 19, 2002 at 03:23:07PM +0100, Kevin J Walters wrote:
> >>>>> "d" == Dave Dykstra <dwd at bell-labs.com> writes:
> d> On Tue, Jun 18, 2002 at 11:43:56AM +0100, Kevin J Walters wrote:
> >> Hi,
> >> Would it be acceptable to patch make_file() in flist.c to ignore any
> >> ENODEV's and not mark them as io_error=1?
> >> In afs, a mountpoint to a volume which does not exist gives an
> >> ENODEV. As such, it can't be copied, so should (or could) just be
> >> ignored?
> d> Is this a normal situation in afs (I've never used it)? Can you use
> d> --exclude to skip it?
> It's not unheard of. The mount operation is a user level command, so
> any user has the potential to create a mountpoint to a volume which
> may not exist (ENODEV) or may not be reachable (ETIMEDOUT or just
> I am using --exclude '.asd/*', this is what comes out,
> building file list ... readlink .asd/A: No such device
> readlink .asd/B: No such device
> readlink .asd/C: No such device
> IO error encountered - skipping file deletion
> wrote 2507 bytes read 20 bytes 561.56 bytes/sec
> total size is 172798 speedup is 68.38
> rsync error: partial transfer (code 23) at main.c(578)
> so i think the allegation of a 'partial transfer' is not correct
> because i did exclude those directories and it did tranfer the
> included stuff correctly. --exclude '/*' works but it's a bit too
> severe :)
> The output doesn't bother me, it's just that exit 23 which is
> preventing me checking for real errors.
> Could io_error only be set if !check_exclude_file(f, fname, &st) and
> maybe leave the rprintf but with a WARNING?
> Why is the check_exclude_file() not performed before the
> readlink_stat()? This would mean the stat was never attempted (saving
> a system call) for an excluded thing (including things that error)?
> d> Do you know if there is precedent in other standard open source tools
> d> to ignore ENODEV? In general I don't think it's a good idea to ignore
> d> errors. It might mean something else in a different situation.
> Don't know of any precedent. The only error i've seen out of a
> filesystem is sunos/solaris ufs EIO when a disk is broken. Not sure
> what error a soft NFS mount gives.
> Kevin J Walters Morgan Stanley
> kjw at ms.com, kjw at acm.org 20 Cabot Square
> Tel: 020 7425 7886 Canary Wharf
> Fax: 020 7677 8504 London E14 4QW
> To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
> Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html
More information about the rsync