GNU bug report logs -
#7324
coreutils on Solaris 10
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 7324 in the body.
You can then email your comments to 7324 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 16:15:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Pieter Bowman <bowman <at> math.utah.edu>
:
New bug report received and forwarded. Copy sent to
bug-coreutils <at> gnu.org
.
(Wed, 03 Nov 2010 16:15:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Recently we put up a new Solaris 10 x86_64 server. Soon after
installing this system, I noticed that some of the coreutils programs
were dumping core. The ones which I noticed most are:
cp
mv
touch
This applies to touch 8.6, as well as /opt/sfw/bin/touch 5.97.
Another department has a fully patched Solaris 10 SPARC system, which
is now exhibiting the same behavior, so this doesn't seem to be
limited to x86.
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.
Pieter
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 16:46:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 7324 <at> debbugs.gnu.org (full text, mbox):
On 11/03/2010 08:35 AM, Pieter Bowman wrote:
> The problem appears to be happening when trying to set the times on
> the new file.
Thanks for reporting this. Is the problem reproducible?
If "mv a b" fails, can you send us the output of "truss mv a b"?
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 16:47:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 7324 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 11/03/2010 09:35 AM, Pieter Bowman wrote:
> Recently we put up a new Solaris 10 x86_64 server. Soon after
> installing this system, I noticed that some of the coreutils programs
> were dumping core. The ones which I noticed most are:
>
> cp
> mv
> touch
>
> This applies to touch 8.6, as well as /opt/sfw/bin/touch 5.97.
>
> Another department has a fully patched Solaris 10 SPARC system, which
> is now exhibiting the same behavior, so this doesn't seem to be
> limited to x86.
>
> 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?
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 16:48:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 7324 <at> debbugs.gnu.org (full text, mbox):
Pieter Bowman wrote:
> Recently we put up a new Solaris 10 x86_64 server. Soon after
> installing this system, I noticed that some of the coreutils programs
> were dumping core. The ones which I noticed most are:
>
> cp
> mv
> touch
>
> This applies to touch 8.6, as well as /opt/sfw/bin/touch 5.97.
>
> Another department has a fully patched Solaris 10 SPARC system, which
> is now exhibiting the same behavior, so this doesn't seem to be
> limited to x86.
>
> 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.
Hi Pieter,
Thanks for the report.
Can you provide truss output showing one or two of those failures?
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 17:21:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 7324 <at> debbugs.gnu.org (full text, mbox):
>> ...
>> 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?
>> ...
I'll leave that up to Nelson Beebe to look at.
>> ...
>> 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 should mention that the problem with "mv" only happens when going
across filesystems.
I'll send along two truss logs in a separate message.
Pieter
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 17:21:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 7324 <at> debbugs.gnu.org (full text, mbox):
[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)]
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 17:27:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 7324 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Here are the truss logs for mv and touch.
Pieter Bowman Voice: 1-801-581-5252
University of Utah FAX: 1-801-581-4148
Department of Mathematics Email: bowman <at> math.utah.edu
155 S 1400 E RM 233 URL: http://www.math.utah.edu/~bowman
Salt Lake City, Ut, 84112-0090 Office: 103 LCB
[mv_truss.log (text/plain, attachment)]
[touch_truss.log (text/plain, attachment)]
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Wed, 03 Nov 2010 18:30:04 GMT)
Full text and
rfc822 format available.
Message #26 received at 7324 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 11/03/2010 11:25 AM, Eric Blake wrote:
> [adding bug-gnulib]
On 11/03/2010 11:39 AM, Eric Blake wrote:
> * m4/utimens.m4 (gl_UTIMENS): Include correct headers.
>
> Signed-off-by: Eric Blake <eblake <at> redhat.com>
> ---
>
> Well this is embarrassing. The configure test for whether
> futimesat(,NULL,) works failed because O_RDWR was not
> declared. I'm pushing this, then retesting to see if
> Solaris 10 still has issues with setting fd times.
>
> ChangeLog | 5 +++++
> m4/utimens.m4 | 3 ++-
> 2 files changed, 7 insertions(+), 1 deletions(-)
I've confirmed that with this fix, the latest gnulib now passes all
time-setting tests except those related to symlink times. I'm now in
the process of testing coreutils on the same machine to see if the fixed
gnulib test makes touch start working again.
>
>
> 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.
Thankfully, the futimesat hack still works. What didn't work was that
the bogus .m4 test (broken since gnulib commit 0883405c in Nov 2009)
made coreutils skip using futimesat() in the first place, and its
fallback to even older utimes-style functions are triggering failures.
But since we should be using futimesat rather than older fallbacks, it
shouldn't matter if those older fallbacks (think utimes()) were recently
broken.
Still, that only definitively explains why coreutils 8.1 through 8.6
would fail; it doesn't necessarily speak to the observed failure on
5.97, nor does it answer what the behavior with 6.0 through 8.0 would
be, because those versions all encountered older implementations of the
gnulib time-setting fallbacks.
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Thu, 04 Nov 2010 14:37:01 GMT)
Full text and
rfc822 format available.
Message #29 received at 7324 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 11/03/2010 12:33 PM, Eric Blake wrote:
> On 11/03/2010 11:39 AM, Eric Blake wrote:
>> * m4/utimens.m4 (gl_UTIMENS): Include correct headers.
>>
>
> I've confirmed that with this fix, the latest gnulib now passes all
> time-setting tests except those related to symlink times. I'm now in
> the process of testing coreutils on the same machine to see if the fixed
> gnulib test makes touch start working again.
Yes, a self-built coreutils on that machine can once again 'touch'. I'm
pushing this. Does this also deserve a NEWS entry? I'm not quite sure
how it would be worded; maybe:
cp, mv, and touch no longer crash when setting file times on Solaris
10 [latent bug since at least coreutils-5.97, exposed by recent
Solaris patch]
And I don't know whether to state that the bug was introduced in 8.1
(the point at where the gnulib utimens.m4 file was broken) or earlier
(since we have a definitive report of 5.97 not working, but not
intermediate versions; also recalling that utimens was moved from
coreutils over to gnulib between 5.97 and 8.1 and has seen quite a lot
of churn over the years).
From 7b4e77352d7e7fc1ba37c3437d9a68f55fbdb668 Mon Sep 17 00:00:00 2001
From: Eric Blake <eblake <at> redhat.com>
Date: Thu, 4 Nov 2010 08:16:04 -0600
Subject: [PATCH] cp, mv, touch: fix file time manipulation on Solaris 10
* gnulib: Update to latest, for futimens fix.
* .gitignore: Ignore another recent gnulib-generated file.
---
.gitignore | 1 +
gnulib | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1b8cae2..cd73b9a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,6 +51,7 @@
/lib/progname.c
/lib/progname.h
/lib/selinux
+/lib/stamp-h1
/lib/unistr
/lib/uniwidth
/lib/unused-parameter.h
diff --git a/gnulib b/gnulib
index 87f692b..37b74cd 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 87f692bf1126a16c40212bcdb5324625939cef2a
+Subproject commit 37b74cd909f60076a096ab8ac2635bc77755153f
--
1.7.3.2
* gnulib 87f692b...37b74cd (2):
> tests: fix compiler warnings
> utimens: fix broken m4 test
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Thu, 04 Nov 2010 15:11:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 7324 <at> debbugs.gnu.org (full text, mbox):
Eric Blake wrote:
> On 11/03/2010 12:33 PM, Eric Blake wrote:
>> On 11/03/2010 11:39 AM, Eric Blake wrote:
>>> * m4/utimens.m4 (gl_UTIMENS): Include correct headers.
>>>
>>
>> I've confirmed that with this fix, the latest gnulib now passes all
>> time-setting tests except those related to symlink times. I'm now in
>> the process of testing coreutils on the same machine to see if the fixed
>> gnulib test makes touch start working again.
>
> Yes, a self-built coreutils on that machine can once again 'touch'. I'm
> pushing this. Does this also deserve a NEWS entry? I'm not quite sure
> how it would be worded; maybe:
>
> cp, mv, and touch no longer crash when setting file times on Solaris
> 10 [latent bug since at least coreutils-5.97, exposed by recent
> Solaris patch]
Thanks for handling that.
I think that anything that evokes a crash will always deserve a NEWS entry.
> And I don't know whether to state that the bug was introduced in 8.1
> (the point at where the gnulib utimens.m4 file was broken) or earlier
> (since we have a definitive report of 5.97 not working, but not
> intermediate versions; also recalling that utimens was moved from
> coreutils over to gnulib between 5.97 and 8.1 and has seen quite a lot
> of churn over the years).
It's ok to say we're not sure.
There's a limit to how much time we can spend on this sort of archeology.
[a latent utimens.m4 bug introduced in 8.1 was triggered only by a
recent Solaris 10 update; there may have been another going back as
far as 5.97]
If you can easily find an ID for the offending Solaris 10 patch
it'd be nice to mention it here or in the commit log.
Information forwarded
to
owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org
:
bug#7324
; Package
coreutils
.
(Thu, 04 Nov 2010 16:48:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 7324 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 11/04/2010 09:15 AM, Jim Meyering wrote:
>> Yes, a self-built coreutils on that machine can once again 'touch'. I'm
>> pushing this. Does this also deserve a NEWS entry? I'm not quite sure
>> how it would be worded; maybe:
>>
>> cp, mv, and touch no longer crash when setting file times on Solaris
>> 10 [latent bug since at least coreutils-5.97, exposed by recent
>> Solaris patch]
>
> Thanks for handling that.
> I think that anything that evokes a crash will always deserve a NEWS entry.
>
> It's ok to say we're not sure.
> There's a limit to how much time we can spend on this sort of archeology.
>
> [a latent utimens.m4 bug introduced in 8.1 was triggered only by a
> recent Solaris 10 update; there may have been another going back as
> far as 5.97]
Thanks for the wording suggestions.
>
> If you can easily find an ID for the offending Solaris 10 patch
> it'd be nice to mention it here or in the commit log.
>
Looking at this page for an idea of Solaris patch ids,
http://blogs.sun.com/patch/entry/solaris_10_kernel_patchid_progression
and the uname information of the machine I see the problem on:
SunOS xxx 5.10 Generic_144488-01 sun4u sparc SUNW,Sun-Blade-1000 Solaris
I'm going ahead with this NEWS entry:
cp, install, mv, and touch no longer crash when setting file times
on Solaris 10 Update 9 [Solaris PatchID 144488 and newer expose a
latent bug introduced in coreutils 8.1, and possibly a second latent
bug going at least as far back as coreutils 5.97]
--
Eric Blake eblake <at> redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
[signature.asc (application/pgp-signature, attachment)]
bug closed, send any further explanations to
7324 <at> debbugs.gnu.org and Pieter Bowman <bowman <at> math.utah.edu>
Request was from
Jim Meyering <jim <at> meyering.net>
to
control <at> debbugs.gnu.org
.
(Sat, 02 Jul 2011 14:41:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 31 Jul 2011 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 13 years and 326 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.