GNU logs - #13347, boring messages


Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#13347: stat/fstat inappropriately used in cp, install, rm, sort, chown for Windows 7 platforms
Resent-From: "Burkhardt, Glenn UTAS" <Glenn.Burkhardt@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Thu, 03 Jan 2013 18:06:01 +0000
Resent-Message-ID: <handler.13347.B.13572363032976 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 13347
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: 13347 <at> debbugs.gnu.org
X-Debbugs-Original-To: "bug-coreutils@HIDDEN" <bug-coreutils@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.13572363032976
          (code B ref -1); Thu, 03 Jan 2013 18:06:01 +0000
Received: (at submit) by debbugs.gnu.org; 3 Jan 2013 18:05:03 +0000
Received: from localhost ([127.0.0.1]:41852 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1TqpA5-0000ls-SC
	for submit <at> debbugs.gnu.org; Thu, 03 Jan 2013 13:05:02 -0500
Received: from eggs.gnu.org ([208.118.235.92]:39608)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TqoKK-0006wT-Py
	for submit <at> debbugs.gnu.org; Thu, 03 Jan 2013 12:11:34 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TqoKA-0002on-G5
	for submit <at> debbugs.gnu.org; Thu, 03 Jan 2013 12:11:30 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW
	autolearn=unavailable version=3.3.2
Received: from lists.gnu.org ([208.118.235.17]:59338)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TqoKA-0002oi-CX
	for submit <at> debbugs.gnu.org; Thu, 03 Jan 2013 12:11:22 -0500
Received: from eggs.gnu.org ([208.118.235.92]:50916)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TqoK5-0004k4-06
	for bug-coreutils@HIDDEN; Thu, 03 Jan 2013 12:11:22 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TqoK0-0002lw-CH
	for bug-coreutils@HIDDEN; Thu, 03 Jan 2013 12:11:16 -0500
Received: from mx0b-00105401.pphosted.com ([67.231.152.184]:40516)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TqoK0-0002jF-6m
	for bug-coreutils@HIDDEN; Thu, 03 Jan 2013 12:11:12 -0500
Received: from pps.filterd (m0004641 [127.0.0.1])
	by mx0b-00105401.pphosted.com (8.14.5/8.14.5) with SMTP id
	r03HB16m001243
	for <bug-coreutils@HIDDEN>; Thu, 3 Jan 2013 12:11:02 -0500
Received: from xnwpv31.utc.com (xnwpv31.utc.com [159.82.148.211])
	by mx0b-00105401.pphosted.com with ESMTP id 19n11schje-1
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK)
	for <bug-coreutils@HIDDEN>; Thu, 03 Jan 2013 12:11:02 -0500
Received: from pps.filterd (localhost.localdomain [127.0.0.1])
	by xnwpv31.utc.com (8.14.5/8.14.5) with SMTP id r03HAGOi030049
	for <bug-coreutils@HIDDEN>; Thu, 3 Jan 2013 12:10:56 -0500
Received: from uusnwa4t.utc.com (uusnwa4t.utc.com [159.82.101.253])
	by xnwpv31.utc.com with ESMTP id 19k7twq723-1
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL)
	for <bug-coreutils@HIDDEN>; Thu, 03 Jan 2013 12:10:56 -0500
Received: from GR-GWI-WEST-A.goodrich.com ([170.126.245.4])
	by uusnwa4t.utc.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP
	id r03HAt8h021377
	for <bug-coreutils@HIDDEN>; Thu, 3 Jan 2013 12:10:56 -0500
Received: from NHC0EX55.goodrich.root.local ([170.126.248.102])
	by GR-GWI-WEST-A.goodrich.com (8.13.5/8.13.5) with ESMTP id
	r03HAeiV017359
	for <bug-coreutils@HIDDEN>; Thu, 3 Jan 2013 12:10:54 -0500 (EST)
Received: from NHC0EX52.goodrich.root.local ([fe80::e542:e16f:7c39:9d7f]) by
	NHC0EX55.goodrich.root.local ([fe80::75b1:c5c8:6d9d:42a8%17]) with mapi
	id 14.02.0328.009; Thu, 3 Jan 2013 10:10:45 -0700
From: "Burkhardt, Glenn UTAS" <Glenn.Burkhardt@HIDDEN>
Thread-Topic: stat/fstat inappropriately used in cp, install, rm, sort,
	chown for Windows 7 platforms
Thread-Index: Ac3p0+tQPAfdWeJwRzusHurwxxqXNA==
Date: Thu, 3 Jan 2013 17:10:45 +0000
Message-ID: <86DD1E0283018749B08AA5A580CB853E038F78@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.116.67.33]
Content-Type: multipart/mixed;
	boundary="_003_86DD1E0283018749B08AA5A580CB853E038F78NHC0EX52goodrichr_"
MIME-Version: 1.0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
	spamscore=0 suspectscore=2
	phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0
	reason=mlx
	scancount=1 engine=7.0.1-1211240000 definitions=main-1301030156
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 208.118.235.17
X-Spam-Score: -4.2 (----)
X-Mailman-Approved-At: Thu, 03 Jan 2013 13:05:01 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.9 (------)

--_003_86DD1E0283018749B08AA5A580CB853E038F78NHC0EX52goodrichr_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

MINGW32_NT-6.1 BOS0DT-1QLS1R1 1.0.17(0.48/3/2) 2011-04-24 23:39 i686 Msys
gcc version 4.7.0 (GCC)
Windows 7 Enterprise SP1
coreutils-5.97

I noticed this when trying to use the "cp" command in a Clearcase locally h=
osted dynamic view. When trying to copy a view private file, the 'cp' comma=
nd would fail with a message like

skipping file `jj', as it was replaced while being copied

The problem is that the 'cp' command uses 'stat' on the source file initial=
ly, and then, when it's ready to copy, uses 'fstat' on it again, after the =
file has been opened for reading (about line 237 in copy.c from coreutils-5=
.97). This works on a file that's on a local hard drive, but not on a Clear=
case locally hosted dynamic view. The 'install' command has the same proble=
m.

This test really shouldn't be done on a Windows platform. Microsoft's docum=
entation describes different values for stat.st_dev returned by the 'stat()=
' and 'fstat()' functions. There's also a note that the stat.st_ino value i=
s meaningless for NTFS filesystems.  Although MinGW releases a very old ver=
sion of 'coreutils', the current 8.9 version will have the same problem.  T=
he definition of the macro SAME_INODE is unchanged.

But then it gets interesting. The 'cp' command is built with a different ve=
rsion of 'stat' and 'fstat' than one normally gets with a MinGW build envir=
onment. The coreutils need the Msys build environment, and the 'stat/fstat'=
 functions are pulled from libmsys-1.0.dll.a. A build in regular MinGW envi=
ronment with the current compiler gets the functions from libmoldname.a. So=
 were the coreutils built with gcc-4.7.0, and no libmsys-1.0.dll.a, the cop=
y command would fail for files on the local hard drive, since stat.st_dev i=
s different for stat() and fstat().

I've attached a small test program to show the stat()/fstat() output, and a=
 patch for system.h in coreutils that allows a working version of 'cp.exe' =
and 'install.exe' to be built.

Please also see the bug report to the MinGW bug tracker, ID 3590842:

http://sourceforge.net/tracker/?func=3Ddetail&aid=3D3590842&group_id=3D2435=
&atid=3D102435


--_003_86DD1E0283018749B08AA5A580CB853E038F78NHC0EX52goodrichr_
Content-Type: application/octet-stream; name="system.h.patch"
Content-Description: system.h.patch
Content-Disposition: attachment; filename="system.h.patch"; size=614;
	creation-date="Wed, 28 Nov 2012 23:35:05 GMT";
	modification-date="Wed, 28 Nov 2012 23:35:05 GMT"
Content-Transfer-Encoding: base64

KioqIHN5c3RlbS5oLm9yaWcJTW9uIE5vdiAyNiAxNjo1NDo1OCAyMDEyCi0tLSBzeXN0ZW0uaAlX
ZWQgTm92IDI4IDE4OjE1OjA0IDIwMTIKKioqKioqKioqKioqKioqCioqKiA1MzUsNTQyICoqKioK
ICAjaW5jbHVkZSAidW5sb2NrZWQtaW8uaCIKICAKICAjZGVmaW5lIFNBTUVfSU5PREUoU3RhdF9i
dWZfMSwgU3RhdF9idWZfMikgXAohICAgKChTdGF0X2J1Zl8xKS5zdF9pbm8gPT0gKFN0YXRfYnVm
XzIpLnN0X2lubyBcCiEgICAgJiYgKFN0YXRfYnVmXzEpLnN0X2RldiA9PSAoU3RhdF9idWZfMiku
c3RfZGV2KQogIAogICNkZWZpbmUgRE9UX09SX0RPVERPVChCYXNlbmFtZSkgXAogICAgKEJhc2Vu
YW1lWzBdID09ICcuJyAmJiAoQmFzZW5hbWVbMV0gPT0gJ1wwJyBcCi0tLSA1MzUsNTQxIC0tLS0K
ICAjaW5jbHVkZSAidW5sb2NrZWQtaW8uaCIKICAKICAjZGVmaW5lIFNBTUVfSU5PREUoU3RhdF9i
dWZfMSwgU3RhdF9idWZfMikgXAohICAgKChTdGF0X2J1Zl8xKS5zdF9pbm8gPT0gKFN0YXRfYnVm
XzIpLnN0X2lubykKICAKICAjZGVmaW5lIERPVF9PUl9ET1RET1QoQmFzZW5hbWUpIFwKICAgIChC
YXNlbmFtZVswXSA9PSAnLicgJiYgKEJhc2VuYW1lWzFdID09ICdcMCcgXAo=

--_003_86DD1E0283018749B08AA5A580CB853E038F78NHC0EX52goodrichr_
Content-Type: text/plain; name="test-stat.c"
Content-Description: test-stat.c
Content-Disposition: attachment; filename="test-stat.c"; size=662;
	creation-date="Wed, 28 Nov 2012 21:17:20 GMT";
	modification-date="Wed, 28 Nov 2012 22:30:43 GMT"
Content-Transfer-Encoding: base64

I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3lz
L3N0YXQuaD4NCiNpbmNsdWRlIDxmY250bC5oPg0KDQppbnQgbWFpbihpbnQgYWMsIGNoYXIgKiph
dikNCnsNCiAgICBpbnQgcywgZmQ7DQogICAgc3RydWN0IHN0YXQgczAsIHMxOw0KDQogICAgaWYg
KGFjIDwgMikgew0KICAgICAgICBwdXRzKCJVc2FnZTogIHRlc3Qtc3RhdCA8ZmlsZW5hbWU+Iik7
DQogICAgICAgIHJldHVybiAtMTsNCiAgICB9DQoNCiAgICBzID0gc3RhdChhdlsxXSwgJnMwKTsN
CiAgICBpZiAocykgcGVycm9yKCJzdGF0IGZhaWxlZCIpOw0KDQogICAgZmQgPSBvcGVuKGF2WzFd
LCBPX1JET05MWSB8IE9fQklOQVJZKTsNCiAgICBpZiAoZmQgPCAwKSB7DQogICAgICAgIHBlcnJv
cigib3BlbiBmYWlsZWQiKTsNCiAgICAgICAgcmV0dXJuIC0xOw0KICAgIH0NCg0KICAgIHMgPSBm
c3RhdChmZCwgJnMxKTsNCiAgICBpZiAocykgcGVycm9yKCJmc3RhdCBmYWlsZWQiKTsNCg0KICAg
IHByaW50ZigiczA6ICBzdF9kZXY9JWQgIHN0X2lubz0lZFxuIiwgczAuc3RfZGV2LCBzMC5zdF9p
bm8pOw0KICAgIHByaW50ZigiczE6ICBzdF9kZXY9JWQgIHN0X2lubz0lZFxuIiwgczEuc3RfZGV2
LCBzMS5zdF9pbm8pOw0KDQogICAgcmV0dXJuIDA7DQp9DQo=

--_003_86DD1E0283018749B08AA5A580CB853E038F78NHC0EX52goodrichr_--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.428 (Entity 5.428)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: "Burkhardt, Glenn UTAS" <Glenn.Burkhardt@HIDDEN>
Subject: bug#13347: Acknowledgement (stat/fstat inappropriately used in
 cp, install, rm, sort, chown for Windows 7 platforms)
Message-ID: <handler.13347.B.13572363032976.ack <at> debbugs.gnu.org>
References: <86DD1E0283018749B08AA5A580CB853E038F78@HIDDEN>
X-Gnu-PR-Message: ack 13347
X-Gnu-PR-Package: coreutils
Reply-To: 13347 <at> debbugs.gnu.org
Date: Thu, 03 Jan 2013 18:06:01 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-coreutils@HIDDEN

If you wish to submit further information on this problem, please
send it to 13347 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
13347: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D13347
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#13347: stat/fstat inappropriately used in cp, install, rm, sort, chown for Windows 7 platforms
Resent-From: Eric Blake <eblake@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Thu, 03 Jan 2013 18:39:02 +0000
Resent-Message-ID: <handler.13347.B13347.13572383369928 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 13347
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: "Burkhardt, Glenn UTAS" <Glenn.Burkhardt@HIDDEN>
Cc: Bug-gnulib <bug-gnulib@HIDDEN>, 13347 <at> debbugs.gnu.org
Received: via spool by 13347-submit <at> debbugs.gnu.org id=B13347.13572383369928
          (code B ref 13347); Thu, 03 Jan 2013 18:39:02 +0000
Received: (at 13347) by debbugs.gnu.org; 3 Jan 2013 18:38:56 +0000
Received: from localhost ([127.0.0.1]:41892 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1Tqpgt-0002a4-TV
	for submit <at> debbugs.gnu.org; Thu, 03 Jan 2013 13:38:56 -0500
Received: from mx1.redhat.com ([209.132.183.28]:25453)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <eblake@HIDDEN>) id 1Tqpgq-0002Zv-2A
	for 13347 <at> debbugs.gnu.org; Thu, 03 Jan 2013 13:38:54 -0500
Received: from int-mx09.intmail.prod.int.phx2.redhat.com
	(int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22])
	by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r03Icm7Y009857
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
	Thu, 3 Jan 2013 13:38:48 -0500
Received: from [10.3.113.75] (ovpn-113-75.phx2.redhat.com [10.3.113.75])
	by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP
	id r03IclBl010920; Thu, 3 Jan 2013 13:38:48 -0500
Message-ID: <50E5D037.10104@HIDDEN>
Date: Thu, 03 Jan 2013 11:38:47 -0700
From: Eric Blake <eblake@HIDDEN>
Organization: Red Hat, Inc.
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:17.0) Gecko/17.0 Thunderbird/17.0
MIME-Version: 1.0
References: <86DD1E0283018749B08AA5A580CB853E038F78@HIDDEN>
In-Reply-To: <86DD1E0283018749B08AA5A580CB853E038F78@HIDDEN>
X-Enigmail-Version: 1.4.6
OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature";
	boundary="------------enigA8900BF1D4A6D64BDBC319C4"
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22
X-Spam-Score: -6.9 (------)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.9 (------)

This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigA8900BF1D4A6D64BDBC319C4
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

[adding gnulib]

On 01/03/2013 10:10 AM, Burkhardt, Glenn UTAS wrote:
> MINGW32_NT-6.1 BOS0DT-1QLS1R1 1.0.17(0.48/3/2) 2011-04-24 23:39 i686 Ms=
ys
> gcc version 4.7.0 (GCC)
> Windows 7 Enterprise SP1
> coreutils-5.97
>=20
> I noticed this when trying to use the "cp" command in a Clearcase local=
ly hosted dynamic view.

Clearcase is notoriously buggy when it comes to POSIX compliance, and
I'm not surprised you are running into problems because of those bugs.
Since you paid for Clearcase (and coreutils is free), you might want to
consider reporting this issue upstream to the clearcase folks; then
again, since clearcase is closed source, I wouldn't hold out any hope
for them to fix their bugs.

> But then it gets interesting. The 'cp' command is built with a differen=
t version of 'stat' and 'fstat' than one normally gets with a MinGW build=
 environment. The coreutils need the Msys build environment, and the 'sta=
t/fstat' functions are pulled from libmsys-1.0.dll.a. A build in regular =
MinGW environment with the current compiler gets the functions from libmo=
ldname.a. So were the coreutils built with gcc-4.7.0, and no libmsys-1.0.=
dll.a, the copy command would fail for files on the local hard drive, sin=
ce stat.st_dev is different for stat() and fstat().

If that's the case, then perhaps the right thing to do is to modify
gnulib to replace fstat() on mingw so that it is always massaged to
provide the same st_dev as stat() (on mingw, gnulib is already doing
other things to track the original file name alongside every open fd, to
work around other bugs in POSIX compliance, so it wouldn't actually cost
that much extra).

>=20
> I've attached a small test program to show the stat()/fstat() output, a=
nd a patch for system.h in coreutils that allows a working version of 'cp=
=2Eexe

Unfortunately, your patch cannot be accepted upstream as-is, as it would
violate POSIX semantics on systems that actually obey POSIX.  But it
might be something that could be made conditional on whether things are
being targeted to mingw.

> http://sourceforge.net/tracker/?func=3Ddetail&aid=3D3590842&group_id=3D=
2435&atid=3D102435

>=20
> *** system.h.orig	Mon Nov 26 16:54:58 2012
> --- system.h	Wed Nov 28 18:15:04 2012
> ***************
> *** 535,542 ****
>   #include "unlocked-io.h"
>  =20
>   #define SAME_INODE(Stat_buf_1, Stat_buf_2) \
> !   ((Stat_buf_1).st_ino =3D=3D (Stat_buf_2).st_ino \
> !    && (Stat_buf_1).st_dev =3D=3D (Stat_buf_2).st_dev)
>  =20
>   #define DOT_OR_DOTDOT(Basename) \
>     (Basename[0] =3D=3D '.' && (Basename[1] =3D=3D '\0' \
> --- 535,541 ----
>   #include "unlocked-io.h"
>  =20
>   #define SAME_INODE(Stat_buf_1, Stat_buf_2) \
> !   ((Stat_buf_1).st_ino =3D=3D (Stat_buf_2).st_ino)
>  =20
>   #define DOT_OR_DOTDOT(Basename) \
>     (Basename[0] =3D=3D '.' && (Basename[1] =3D=3D '\0' \
>=20

Also, while this patch is unlikely to go in as-is to upstream coreutils,
you may want to pursue getting it included into mingw and msys builds as
downstream distros affected by the need for the workaround.

--=20
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


--------------enigA8900BF1D4A6D64BDBC319C4
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Public key at http://people.redhat.com/eblake/eblake.gpg
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iQEcBAEBCAAGBQJQ5dA3AAoJEKeha0olJ0Nq49gH/06ecWCchI7SKzFnJZ+/d2il
CQ2PZLdMpJUyTQnznRWuoD5D5C3LPHKqJwwAz1toonXacX3FcIWVSrYqDo3FaRkv
cxDOs9pzwsTVlCoUtKguUyawCQF2Pdl8fQwfJZzgQW0k54Gy4H6LO7QraHOjm2z0
lRWygbmJXrw2u/qADGMhw603rAOE7nkYxbrX76Za3W7wDFHg5Sn0s/KNSwHawZKZ
UxkEHwhkBKp3f8IApW/NHauBm59fZzMTzCrpgwbZIcpOLPXxgUDbqgZM3tZrM2Ta
F6tGpSiOwR7SeULbdYSsC95D88Y3GbeyVr8QIgxL8PG143UmT7C5DjhcziSlS3I=
=hkXh
-----END PGP SIGNATURE-----

--------------enigA8900BF1D4A6D64BDBC319C4--




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#13347: stat/fstat inappropriately used in cp, install, rm, sort, chown for Windows 7 platforms
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Sun, 06 Jan 2013 16:55:02 +0000
Resent-Message-ID: <handler.13347.B13347.13574912533787 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 13347
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Eric Blake <eblake@HIDDEN>
Cc: Glenn.Burkhardt@HIDDEN, bug-gnulib@HIDDEN, 13347 <at> debbugs.gnu.org
Reply-To: Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 13347-submit <at> debbugs.gnu.org id=B13347.13574912533787
          (code B ref 13347); Sun, 06 Jan 2013 16:55:02 +0000
Received: (at 13347) by debbugs.gnu.org; 6 Jan 2013 16:54:13 +0000
Received: from localhost ([127.0.0.1]:47642 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1TrtUC-0000z2-NK
	for submit <at> debbugs.gnu.org; Sun, 06 Jan 2013 11:54:13 -0500
Received: from mtaout20.012.net.il ([80.179.55.166]:54931)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <eliz@HIDDEN>) id 1TrtU9-0000yv-5U
	for 13347 <at> debbugs.gnu.org; Sun, 06 Jan 2013 11:54:10 -0500
Received: from conversion-daemon.a-mtaout20.012.net.il by
	a-mtaout20.012.net.il (HyperSendmail v2007.08) id
	<0MG700200QWZTG00@HIDDEN> for
	13347 <at> debbugs.gnu.org; Sun, 06 Jan 2013 18:53:48 +0200 (IST)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il
	(HyperSendmail v2007.08) with ESMTPA id
	<0MG7002SPQXM8OB0@HIDDEN>;
	Sun, 06 Jan 2013 18:53:46 +0200 (IST)
Date: Sun, 06 Jan 2013 18:53:54 +0200
From: Eli Zaretskii <eliz@HIDDEN>
In-reply-to: <50E5D037.10104@HIDDEN>
X-012-Sender: halo1@HIDDEN
Message-id: <83pq1i8d7h.fsf@HIDDEN>
References: <86DD1E0283018749B08AA5A580CB853E038F78@HIDDEN>
	<50E5D037.10104@HIDDEN>
X-Spam-Score: 1.5 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
	has
	identified this incoming email as possible spam. The original message
	has been attached to this so you can view it (if it isn't spam) or
	label similar future email.  If you have any questions, see
	the administrator of that system for details.
	Content preview:  > Date: Thu,
	03 Jan 2013 11:38:47 -0700 > From: Eric Blake
	<eblake@HIDDEN> > Cc: Bug-gnulib <bug-gnulib@HIDDEN>,
	13347 <at> debbugs.gnu.org
	> > > But then it gets interesting. The 'cp' command is built with a
	different
	version of 'stat' and 'fstat' than one normally gets with a MinGW build
	environment. The coreutils need the Msys build environment,
	and the 'stat/fstat' functions
	are pulled from libmsys-1.0.dll.a. A build in regular MinGW environment
	with
	the current compiler gets the functions from libmoldname.a. So were the
	coreutils built with gcc-4.7.0, and no libmsys-1.0.dll.a,
	the copy command would fail for files on the local hard drive,
	since stat.st_dev is different for stat() and fstat(). [...] 
	Content analysis details:   (1.5 points, 10.0 required)
	pts rule name              description
	---- ----------------------
	--------------------------------------------------
	-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,
	no trust [80.179.55.166 listed in list.dnswl.org]
	0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail)
	0.8 BAYES_50               BODY: Bayes spam probability is 40 to 60%
	[score: 0.5000]
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: 0.7 (/)

> Date: Thu, 03 Jan 2013 11:38:47 -0700
> From: Eric Blake <eblake@HIDDEN>
> Cc: Bug-gnulib <bug-gnulib@HIDDEN>, 13347 <at> debbugs.gnu.org
> 
> > But then it gets interesting. The 'cp' command is built with a different version of 'stat' and 'fstat' than one normally gets with a MinGW build environment. The coreutils need the Msys build environment, and the 'stat/fstat' functions are pulled from libmsys-1.0.dll.a. A build in regular MinGW environment with the current compiler gets the functions from libmoldname.a. So were the coreutils built with gcc-4.7.0, and no libmsys-1.0.dll.a, the copy command would fail for files on the local hard drive, since stat.st_dev is different for stat() and fstat().

Sorry for chiming in, but are you saying that the 'cp' binary
sometimes dynamically links to the MSYS runtime and sometimes to the
native Windows runtime?  That is a sure way to disaster, as these two
runtimes are incompatible.  (MSYS is a fork of an old version of
Cygwin.)  A given binary should only ever use one of these, depending
on whether it was built as a MinGW program or an MSYS program.

If that's not the issue here, then why MSYS is relevant to the
discussion at all?  What am I missing?

> If that's the case, then perhaps the right thing to do is to modify
> gnulib to replace fstat() on mingw so that it is always massaged to
> provide the same st_dev as stat() (on mingw, gnulib is already doing
> other things to track the original file name alongside every open fd, to
> work around other bugs in POSIX compliance, so it wouldn't actually cost
> that much extra).

Actually, TRT would be to have a replacement for 'stat' and 'fstat'
that return the Windows equivalent of the inode, which is accessible
by a file handle or a descriptor.  The problem is that this also
requires to replace the definition of 'struct stat', since the
resulting inodes are 64-bit numbers, while a typical 'struct stat'
declares the inode as 'short' (why waste storage on something that is
always zero?)




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#13347: stat/fstat inappropriately used in cp, install, rm, sort, chown for Windows 7 platforms
Resent-From: "Burkhardt, Glenn UTAS" <Glenn.Burkhardt@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Mon, 07 Jan 2013 14:10:02 +0000
Resent-Message-ID: <handler.13347.B13347.13575677938653 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 13347
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: Eric Blake <eblake@HIDDEN>, "bug-gnulib@HIDDEN" <bug-gnulib@HIDDEN>, "13347 <at> debbugs.gnu.org" <13347 <at> debbugs.gnu.org>
Received: via spool by 13347-submit <at> debbugs.gnu.org id=B13347.13575677938653
          (code B ref 13347); Mon, 07 Jan 2013 14:10:02 +0000
Received: (at 13347) by debbugs.gnu.org; 7 Jan 2013 14:09:53 +0000
Received: from localhost ([127.0.0.1]:33982 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1TsDOi-0002FV-AA
	for submit <at> debbugs.gnu.org; Mon, 07 Jan 2013 09:09:52 -0500
Received: from mx0a-00105401.pphosted.com ([67.231.144.184]:32782)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <Glenn.Burkhardt@HIDDEN>) id 1TsDOd-0002FL-D4
	for 13347 <at> debbugs.gnu.org; Mon, 07 Jan 2013 09:09:49 -0500
Received: from pps.filterd (m0004020 [127.0.0.1])
	by mx0a-00105401.pphosted.com (8.14.5/8.14.5) with SMTP id
	r07E51WT003309; Mon, 7 Jan 2013 09:09:42 -0500
Received: from xmnpv32.utc.com (xmnpv32.utc.com [159.82.164.212])
	by mx0a-00105401.pphosted.com with ESMTP id 19qya528nb-1
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK);
	Mon, 07 Jan 2013 09:09:41 -0500
Received: from pps.filterd (localhost.localdomain [127.0.0.1])
	by xmnpv32.utc.com (8.14.5/8.14.5) with SMTP id r07E9Yps032602;
	Mon, 7 Jan 2013 09:09:39 -0500
Received: from uusmna1q.utc.com (uusmna1q.utc.com [159.82.219.65])
	by xmnpv32.utc.com with ESMTP id 19h9rynpnk-1
	(version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL);
	Mon, 07 Jan 2013 09:09:39 -0500
Received: from GR-GWI-WEST-A.goodrich.com ([170.126.245.4])
	by uusmna1q.utc.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP
	id r07E9cWf002629; Mon, 7 Jan 2013 09:09:39 -0500
Received: from NHC0EX53.goodrich.root.local ([170.126.248.100])
	by GR-GWI-WEST-A.goodrich.com (8.13.5/8.13.5) with ESMTP id
	r07E9bpC029508; Mon, 7 Jan 2013 09:09:37 -0500 (EST)
Received: from NHC0EX52.goodrich.root.local ([fe80::e542:e16f:7c39:9d7f]) by
	NHC0EX53.goodrich.root.local ([fe80::8a4:dec8:8adc:7756%18]) with mapi
	id 14.02.0328.009; Mon, 7 Jan 2013 07:09:36 -0700
From: "Burkhardt, Glenn UTAS" <Glenn.Burkhardt@HIDDEN>
Thread-Topic: bug#13347: stat/fstat inappropriately used in cp, install, rm,
	sort, chown for Windows 7 platforms
Thread-Index: AQHN7C51+gy7aZQvT0i4xUL2m3A22Zg95xrQ
Date: Mon, 7 Jan 2013 14:09:35 +0000
Message-ID: <86DD1E0283018749B08AA5A580CB853E03F687@HIDDEN>
References: <86DD1E0283018749B08AA5A580CB853E038F78@HIDDEN>
	<50E5D037.10104@HIDDEN> <83pq1i8d7h.fsf@HIDDEN>
In-Reply-To: <83pq1i8d7h.fsf@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.116.67.33]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
	spamscore=0 suspectscore=1
	phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0
	reason=mlx
	scancount=1 engine=7.0.1-1211240000 definitions=main-1301070116
X-Spam-Score: 0.1 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -0.7 (/)



> -----Original Message-----
> From: Eli Zaretskii [mailto:eliz@HIDDEN]
> Sent: Sunday, January 06, 2013 11:54 AM
> To: Eric Blake
> Cc: Burkhardt, Glenn UTAS; bug-gnulib@HIDDEN; 13347 <at> debbugs.gnu.org
> Subject: Re: bug#13347: stat/fstat inappropriately used in cp, install, r=
m, sort,
> chown for Windows 7 platforms
>=20
> > Date: Thu, 03 Jan 2013 11:38:47 -0700
> > From: Eric Blake <eblake@HIDDEN>
> > Cc: Bug-gnulib <bug-gnulib@HIDDEN>, 13347 <at> debbugs.gnu.org
> >
> > > But then it gets interesting. The 'cp' command is built with a differ=
ent
> version of 'stat' and 'fstat' than one normally gets with a MinGW build
> environment. The coreutils need the Msys build environment, and the
> 'stat/fstat' functions are pulled from libmsys-1.0.dll.a. A build in regu=
lar
> MinGW environment with the current compiler gets the functions from
> libmoldname.a. So were the coreutils built with gcc-4.7.0, and no libmsys=
-
> 1.0.dll.a, the copy command would fail for files on the local hard drive,=
 since
> stat.st_dev is different for stat() and fstat().
>=20
> Sorry for chiming in, but are you saying that the 'cp' binary sometimes
> dynamically links to the MSYS runtime and sometimes to the native Windows
> runtime?  That is a sure way to disaster, as these two runtimes are
> incompatible.  (MSYS is a fork of an old version of
> Cygwin.)  A given binary should only ever use one of these, depending on
> whether it was built as a MinGW program or an MSYS program.
>=20
> If that's not the issue here, then why MSYS is relevant to the discussion=
 at
> all?  What am I missing?

The MinGW folks have their own problems, of course.  I made that note only =
because if one tries using the test code I supplied, the result from stat/f=
stat will be different than what MinGW's 'cp' command gets, since the 'cp' =
command uses a different stat/fstat implementation than one gets using crea=
ting a new program in a standard way.

I started exploring this problem by building 'cp.exe' using MinGW's build s=
cript.  When I discovered the stat/fstat problem, I tried duplicating it wi=
th a simple test program.  But the st_ino/st_dev values for my program were=
 different that what 'cp.exe' got on the same files.

The comment is only relevant for testing in the MinGW environment.





Last modified: Fri, 31 Oct 2014 17:00:04 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.