[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 ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature