Description of problem: Looks like with kernel 2.6.22+, rsync uses lutimes to set the timestamp on files. Apparently this is not available under the latest fedora xen kernel (kernel-xen-2.6.21-2947.fc8), and so you get lots of: rsync: failed to set times on "/data/backup1/hammer/etc/alternatives/mkisofs": Function not implemented (38) rsync: failed to set times on "/data/backup1/hammer/etc/alternatives/mkisofs-mkhybrid": Function not implemented (38) Perhaps rebuilding rsync and explicitly disabling HAVE_LUTIMES would be good? Or perhaps the xen kernel could have lutimes added? Version-Release number of selected component (if applicable): rsync-2.6.9-3.1.fc8
Well as far as I know Xen is supposed to be almost transparent to user space applications so I think this is a bug to be filed against the kernel.
I couldn't reproduce it using rsync-2.6.9-3.1.fc8 and kernel-xen 2.6.21-2944.fc8xen. Could you run rsync under strace and attach the output to this bug? Run it as: strace -f -o /tmp/rsync.trace rsync (...) If the problem is missing the lutimes feature, would this work under a non-xen 2.6.21 kernel?
Created attachment 220211 [details] rsync strace Here's the relevant error: 3740 lstat("etc/init.d", {st_mode=S_IFLNK|0777, st_size=11, ...}) = 0 3740 readlink("etc/init.d", "rc.d/init.d", 4095) = 11 3740 utimensat(AT_FDCWD, "etc/init.d", {{1191879601, 0}, {1191858371, 0}}, AT_SYMLINK_NOFOLLOW) = -1 ENOSYS (Function not implemented) Other info is that /data/backup1 (where the copy is going) is an NFS mount.
It is not a Xen specific problem, but rsync is not supporting older kernels that don't have utimensat() available, such as 2.6.21. The compile-time check for lutimes() is not enough, as it may return ENOSYS if the kernel doesn't support utimensat().
Ok, so we need a runtime test? Any other option?
By looking more carefully at the code, it was already impossible to set the time of symlinks if lutimes() was not available, but the warning was suppressed. A runtime test wouldn't make the setting of timestamp on symlinks work, anyway. The only question is either the warning should be suppressed or not. It is up to the rsync maintainer to suppress the warning if lutimes() returns ENOSYS to mimic the behaviour when HAVE_LUTIMES is not set, or keep the warning. I don't know what is desirable. On the other hand, glibc could use futimesat() on its lutimes() implementation to support kernels that doesn't have utimensat(). But this won't change the situation for rsync, because there are already glibc versions where lutimes() may return ENOSYS. I am reassigning this to the 'rsync' component.
While ugly I think that I should keep the warning, this way people knows their kernel does not provide the functionality in case the rely on lutimes(), silently ignoring might be worst. If anyone has a strong opinion I'd like to know.
When will we have a xen kernel that supports lutimes?
(In reply to comment #8) > When will we have a xen kernel that supports lutimes? A 2.6.22 kernel-xen will be available soon, and it has the utimensat() system call. I don't have a accurate estimate, however, on how long it will take. The forward-porting to 2.6.22 is on its end, but there may be some few bugs remaining to be solved, yet.
Based on the date this bug was created, it appears to have been reported during the development of Fedora 8. In order to refocus our efforts as a project we are changing the version of this bug to '8'. If this bug still exists in rawhide, please change the version back to rawhide. (If you're unable to change the bug's version, add a comment to the bug and someone will change it for you.) Thanks for your help and we apologize for the interruption. The process we're following is outlined here: http://fedoraproject.org/wiki/BugZappers/F9CleanUp We will be following the process here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this doesn't happen again.
This message is a reminder that Fedora 8 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 8. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '8'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 8's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 8 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Fedora 8 changed to end-of-life (EOL) status on 2009-01-07. Fedora 8 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed.