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

           Summary: Special handling of lutimes ENOSYS failures does not
                    work as intended
           Product: rsync
           Version: 3.1.0
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: core
        AssignedTo: way...@samba.org
        ReportedBy: m...@mattmccutchen.net
         QAContact: rsync...@samba.org


Suppose rsync is configured with HAVE_LUTIMES=1 but is running on an older
version of Linux where lutimes fails with ENOSYS.  Rsync treats the failure to
set a symlink's mtime specially by itemizing "T" instead of raising exit code
23.  However, since commit accc091fe9ebbb602bcf692c577486e62011d5c1, rsync will
try lutimes on non-symlinks as well and raise exit code 23, which defeats the
intent of tolerating older kernels.  The same issue occurs with utimensat,
support for which was added right after the aforementioned commit.

To fix this, rsync should fall back to utimes at runtime when lutimes or
utimensat fails on a non-symlink.  Alternatively, the special handling of
lutimes/utimensat ENOSYS failures could be removed: the need is probably less
now that Linux with utimensat support has been available for three years, and
the feature has always been flawed in that mtimes that rsync previously failed
to set will prevent symlinks from hard-linking with --link-dest.


-- 
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.
-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to