GNU bug report logs -
#7324
coreutils on Solaris 10
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
[adding bug-gnulib]
On 11/03/2010 10:51 AM, Eric Blake wrote:
>> The problem appears to be happening when trying to set the times on
>> the new file.
>>
>> I suspect it's an updated patch which Oracle has provided, which has
>> broken this.
>
> Thanks for the report. Have you tried with the latest snapshot?
> http://lists.gnu.org/archive/html/coreutils/2010-11/msg00004.html
> since it includes some recent gnulib fixes for at least some Solaris 10
> bugs?
>
> Also, can you provide a truss report of a failing command, so we can see
> exactly how Oracle has broken futimens/utimensat, assuming that you are
> correct that it is a bug in setting file times?
I've confirmed the failure on:
$ uname -a
SunOS xxx 5.10 Generic_142900-06 sun4u sparc SUNW,Sun-Fire-V440 Solaris
via gnulib's test-fdutimensat:
../../gltests/test-fdutimensat.c:56: assertion failed
/bin/bash: line 5: 25716 Abort EXEEXT=''
srcdir='../../gltests' MAKE='make' ${dir}$tst
FAIL: test-fdutimensat
skipping test: setting fd time not supported on this file system
SKIP: test-futimens
$ truss gltests/test-fdutimensat
...
futimesat(-3041965, "test-fdutimensat.tlink/", 0x00000000) Err#20 ENOTDIR
lstat("test-fdutimensat.tlink/", 0xFFBFE06C) Err#20 ENOTDIR
openat(-3041965, "test-fdutimensat.tlink", O_WRONLY) = 3
fcntl(3, F_DUP2FD, 0x00000003) = 3
futimesat(-3041965, "test-fdutimensat.tlink", 0xFFBFE0E4) = 0
fcntl(3, F_DUP2FD, 0x00000003) = 3
lstat("test-fdutimensat.tlink", 0xFFBFE06C) = 0
fstat64(2, 0xFFBFD520) = 0
../../gltests/test-fdutimensat.cwrite(2, " . . / . . / g l t e s t"..,
32) = 32
:56write(2, " : 5 6", 3) = 3
: assertion failed
write(2, " : a s s e r t i o n ".., 19) = 19
sigaction(SIGABRT, 0x00000000, 0xFFBFE3E0) = 0
sigaction(SIGABRT, 0xFFBFE290, 0xFFBFE330) = 0
lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
lwp_kill(1, SIGABRT) = 0
Received signal #6, SIGABRT [default]
siginfo: SIGABRT pid=27650 uid=84137 code=-1
It looks like Solaris 10 may have broken their hack where
futimesat(fd,NULL,time) could set the timestamps of an open fd, which
coreutils is relying on since futimens and utimensat do not exist on
that platform.
I'm looking into it further, but wanted to send this out now.
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
This bug report was last modified 13 years and 358 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.