Bug 323591 - rsync emis "failed to set times on <file>: Function not implemented (38)" with xen kernel
rsync emis "failed to set times on <file>: Function not implemented (38)" wit...
Product: Fedora
Classification: Fedora
Component: rsync (Show other bugs)
All Linux
low Severity low
: ---
: ---
Assigned To: Simo Sorce
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2007-10-08 15:09 EDT by Orion Poplawski
Modified: 2009-01-08 23:55 EST (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-01-08 23:55:52 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
rsync strace (546.14 KB, application/x-tar)
2007-10-08 17:46 EDT, Orion Poplawski
no flags Details

  None (edit)
Description Orion Poplawski 2007-10-08 15:09:39 EDT
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):
Comment 1 Simo Sorce 2007-10-08 16:11:20 EDT
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.
Comment 2 Eduardo Habkost 2007-10-08 17:36:54 EDT
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?
Comment 3 Orion Poplawski 2007-10-08 17:46:34 EDT
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.
Comment 4 Eduardo Habkost 2007-10-10 14:35:22 EDT
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().
Comment 5 Simo Sorce 2007-10-10 14:44:08 EDT
Ok, so we need a runtime test? Any other option?
Comment 6 Eduardo Habkost 2007-10-10 15:15:33 EDT
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.
Comment 7 Simo Sorce 2007-11-20 11:36:36 EST
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.
Comment 8 Orion Poplawski 2007-11-20 15:54:55 EST
When will we have a xen kernel that supports lutimes?
Comment 9 Eduardo Habkost 2007-11-20 16:09:28 EST
(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 

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.
Comment 10 Bug Zapper 2008-04-04 10:01:54 EDT
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
(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:

We will be following the process here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this
doesn't happen again.
Comment 11 Bug Zapper 2008-11-26 02:56:02 EST
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: 
Comment 12 Bug Zapper 2009-01-08 23:55:52 EST
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.

Note You need to log in before you can comment on or make changes to this bug.