DO NOT REPLY [Bug 7621] New: Special handling of lutimes ENOSYS failures does not work as intended

samba-bugs at samba.org samba-bugs at samba.org
Sat Aug 14 23:04:49 MDT 2010


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: wayned at samba.org
        ReportedBy: matt at mattmccutchen.net
         QAContact: rsync-qa at 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.


More information about the rsync mailing list