GNU bug report logs - #10055
cp: cp -u corrupts 'fs'' information if interupted; can't

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: coreutils; Severity: wishlist; Reported by: Linda Walsh <coreutils@HIDDEN>; dated Tue, 15 Nov 2011 19:09:02 UTC; Maintainer for coreutils is bug-coreutils@HIDDEN.
Changed bug title to 'cp: cp -u corrupts 'fs'' information if interupted; can't' from '[sr #107875] BUG cp -u corrupts 'fs'' information if interupted; can't recover on future invoctions' Request was from Assaf Gordon <assafgordon@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Severity set to 'wishlist' from 'normal' Request was from Assaf Gordon <assafgordon@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 16 Nov 2011 14:16:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 16 09:16:06 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQgHV-0002sc-Sk
	for submit <at> debbugs.gnu.org; Wed, 16 Nov 2011 09:16:06 -0500
Received: from mx.meyering.net ([88.168.87.75])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <jim@HIDDEN>) id 1RQgHT-0002sS-CK
	for 10055 <at> debbugs.gnu.org; Wed, 16 Nov 2011 09:16:05 -0500
Received: from rho.meyering.net (localhost.localdomain [127.0.0.1])
	by rho.meyering.net (Acme Bit-Twister) with ESMTP id 2FC9460042;
	Wed, 16 Nov 2011 15:15:17 +0100 (CET)
From: Jim Meyering <jim@HIDDEN>
To: "Linda A. Walsh" <law@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if	interupted; can't recover on future invoctions
In-Reply-To: <4EC3C2DE.9080209@HIDDEN> (Linda A. Walsh's message of "Wed,
	16 Nov 2011 06:04:14 -0800")
References: <4EC2B883.40409@HIDDEN> <4EC2BBC3.3060203@HIDDEN>
	<8762ika5wi.fsf@HIDDEN> <4EC3C2DE.9080209@HIDDEN>
Date: Wed, 16 Nov 2011 15:15:17 +0100
Message-ID: <87obwc6tmy.fsf@HIDDEN>
Lines: 12
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.7 (--)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -2.7 (--)

Linda A. Walsh wrote:
...
>    But that's not the bug db interface...thats just a log...where? the bug
>    db intface for the bug in the bug database?
>
> References
>
>    1. http://bugs.gnu.org/10055

Here's a description of the interface:

  http://debbugs.gnu.org/




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 16 Nov 2011 14:05:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 16 09:05:12 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQg6x-0002cD-Sb
	for submit <at> debbugs.gnu.org; Wed, 16 Nov 2011 09:05:12 -0500
Received: from ishtar.tlinx.org ([173.164.175.65] helo=Ishtar.sc.tlinx.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <law@HIDDEN>) id 1RQg6t-0002bv-FU
	for 10055 <at> debbugs.gnu.org; Wed, 16 Nov 2011 09:05:10 -0500
Received: from [192.168.3.140] (Athenae [192.168.3.140])
	by Ishtar.sc.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id
	pAGE4ERc020575; Wed, 16 Nov 2011 06:04:18 -0800
Message-ID: <4EC3C2DE.9080209@HIDDEN>
Date: Wed, 16 Nov 2011 06:04:14 -0800
From: "Linda A. Walsh" <law@HIDDEN>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;
	rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24
	Mnenhy/0.7.6.666
MIME-Version: 1.0
To: Jim Meyering <jim@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if	interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2BBC3.3060203@HIDDEN>
	<8762ika5wi.fsf@HIDDEN>
In-Reply-To: <8762ika5wi.fsf@HIDDEN>
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spam-Score: -1.9 (-)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -1.7 (-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <style>
/* margin:(X):=T+B+R+L; (V H):V=T+B,H=R+L; (T H B):T,H=R+L, (T R B L) */
/*body { margin:.5cm .20cm;padding:.15cm .15cm;}*/
/* disable local font and span tags by default */
.l, body, .l p, .l table, .l tbody{
font: 14.3pt Constantia, Verdana, "Lucida Bright",Serif;
font-size-adjust:.44;
background-color:#faf8ff; color:#105070;
}
p { margin .5cm; text-indent:.5cm;}
p+p { margin-top.20cm;margin-bottom:.20cm}
.l small { font-size:85.18%;}
.l big { font-size:117.4%;}
.generic-font-families {
font-family:cursive,fantasy,sans-serif,serif,monospace;
}
.quoted { font-style:italic; font-size:90%;}
.l em { font-variant:small-caps }
/* font style var wght sz hght fam */
h6 {font: small-caps 700 89.308% }
h5 {font: small-caps 800 100% }
h4 {font: bold 113.601%}
h3 {font: bold 130.902%}
h2 {font: bold 152.909%}
h1 {font bold 180.902% }
/*h1,.l h2,.l h3,.l h4,.l h5 { font-size: inherit; font-weight:bold }
h5,.l h6 { font-size: inherit; font-variant:small-caps }*/
/* h5 {font: inherit; font-weight:800}
h6 {font: inherit; font-weight:700} */
h1,.l h2,.l h3,.l h4,.l h5,.l h6 { margin:.5em }
.l blockquote {margin:.5cm .9cm;}
.l blockquote .l p{ margin: .20cm .25cm;}
.l blockquote .l p, blockquote .l p+blockquote .l p { text-indent:-.35cm; }
.l blockquote .l p+blockquote .l p { margin-top:.15cm;margin-bottom:.15cm}
.l pre, .l cite { padding:1cm .9cm; }
pre cite tt { font-style:oblique; background-color:#f0f4ff; color:#203040;
font-family:lucida console,monospace;}
.l pre+pre {
font-inherit; font-style:oblique; background-color:#f0f4ff; color:#203040;
margin:1ex .9cm}
address {
font inherit; font-style:oblique; font-family:Cambria;
}
.l address { font:inherit; margin:1em 2cm; background-color:#f8faff; }
.l address+address{ margin:0 1.5cm}
.l img { margin:.8cm }
.l q:before {content:open-quote }
.l q:after {content:close-quote }
.l a, a:link,a:focus,a:visited { text-decoration:underline }
a:link { color:#44BB33 }
a:focus { color: #22FF11 }
a:visited {color: #557722 }
.sig {
font oblique 3cm/1em "Lucida Handwriting",cursive;
text-indent:2cm;
margin: 3cm 8cm;
}
.sig:first-letter {
float:left;
font: italic 3in/1em "Lucida Calligraphy",cursive;
font-weight:200;
margin: -3cm -4mm inherit inherit;
}
#sig_fl {
float:left;
font:italic 3in/1em "Lucida Calligraphy";
font-weight:200;
padding:0;
margin-top: -3cm -4mm 0 0 ;
}
.MsoNormal, .MsoNormalTable{
padding:0; margin:0;
color:darkmagenta; background:honeydew;
font: oblique 14pt/95% Calibri,Verdana,Arial !important;
}

.MsoNormal span, .MsoNormalTable span{
font-family: inherit !important; font-size: inherit !important;
font-style: inherit !important; color: inherit !important;
}
span[font-family=Arial], span[font-family="Times New Roman"], font[face=Arial] ,font[face="Times New Roman"]{
font-family: inherit !important; font-size-adjust:inherit !important;
font-size: inherit !important; line-height: inherit !important;
color: inherit !important;
}
/* vim: sts=2 sw=2 ts=2 si sc ai
*/
  </style>
</head>
<body>
<br>
<p> </p>
<br>
<br>
Jim Meyering wrote:
<blockquote id="mid_8762ika5wi_fsf_rho_meyering_net"
 cite="mid:8762ika5wi.fsf@HIDDEN" type="cite">
  <pre wrap="">Linda A. Walsh wrote:
  </pre>
  <blockquote id="StationeryCiteGenerated_1" type="cite">
    <pre wrap="">Hmmm....  Dang strange processes on bugs...  can't submit directly bug
can just by
emailing it to the email list?   ...  (bureaucracy!)

Linda Walsh wrote:
    </pre>
    <blockquote id="StationeryCiteGenerated_2" type="cite">
      <pre wrap="">This should be filed under bugs, not under support, but it seems that users of
the core utilis are ot allowed to find bugs...convenient.
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=""><!---->
Thanks for the report.

Please do not use savannah's bug or support interfaces for coreutils.
We deliberately disabled the former.
Now, when you send a message to the bug-coreutils mailing list,
it creates a ticket for you.  Yours is here:

    <a class="moz-txt-link-freetext" href="http://bugs.gnu.org/10055">http://bugs.gnu.org/10055</a>

Simply replying to any mail about it adds entries to its log.
  </pre>
</blockquote>
<br>
----<br>
But that's not the bug db interface...thats just a log...where? the bug
db intface for the bug in the bug database?<br>
<br>
</body>
</html>




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 16 Nov 2011 07:23:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 16 02:23:02 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQZph-0000nA-4o
	for submit <at> debbugs.gnu.org; Wed, 16 Nov 2011 02:23:01 -0500
Received: from mx.meyering.net ([88.168.87.75])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <jim@HIDDEN>) id 1RQZpa-0000my-N3
	for 10055 <at> debbugs.gnu.org; Wed, 16 Nov 2011 02:22:55 -0500
Received: from rho.meyering.net (localhost.localdomain [127.0.0.1])
	by rho.meyering.net (Acme Bit-Twister) with ESMTP id D3C6F6006A;
	Wed, 16 Nov 2011 08:22:05 +0100 (CET)
From: Jim Meyering <jim@HIDDEN>
To: "Linda A. Walsh" <law@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if	interupted; can't recover on future invoctions
In-Reply-To: <4EC2BBC3.3060203@HIDDEN> (Linda A. Walsh's message of "Tue,
	15 Nov 2011 11:21:39 -0800")
References: <4EC2B883.40409@HIDDEN> <4EC2BBC3.3060203@HIDDEN>
Date: Wed, 16 Nov 2011 08:22:05 +0100
Message-ID: <8762ika5wi.fsf@HIDDEN>
Lines: 19
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.7 (--)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -2.7 (--)

Linda A. Walsh wrote:
> Hmmm....  Dang strange processes on bugs...  can't submit directly bug
> can just by
> emailing it to the email list?   ...  (bureaucracy!)
>
> Linda Walsh wrote:
>> This should be filed under bugs, not under support, but it seems that users of
>> the core utilis are ot allowed to find bugs...convenient.

Thanks for the report.

Please do not use savannah's bug or support interfaces for coreutils.
We deliberately disabled the former.
Now, when you send a message to the bug-coreutils mailing list,
it creates a ticket for you.  Yours is here:

    http://bugs.gnu.org/10055

Simply replying to any mail about it adds entries to its log.




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 16 Nov 2011 06:09:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 16 01:09:31 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQYgd-0007X3-1j
	for submit <at> debbugs.gnu.org; Wed, 16 Nov 2011 01:09:31 -0500
Received: from smtp.cs.ucla.edu ([131.179.128.62])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <eggert@HIDDEN>) id 1RQYga-0007Wn-Hd
	for 10055 <at> debbugs.gnu.org; Wed, 16 Nov 2011 01:09:30 -0500
Received: from localhost (localhost.localdomain [127.0.0.1])
	by smtp.cs.ucla.edu (Postfix) with ESMTP id 227B339E800E;
	Tue, 15 Nov 2011 22:08:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu
Received: from smtp.cs.ucla.edu ([127.0.0.1])
	by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id es86ysJRvyyF; Tue, 15 Nov 2011 22:08:38 -0800 (PST)
Received: from [192.168.1.10] (pool-71-189-109-235.lsanca.fios.verizon.net
	[71.189.109.235])
	by smtp.cs.ucla.edu (Postfix) with ESMTPSA id E03E839E8006;
	Tue, 15 Nov 2011 22:08:37 -0800 (PST)
Message-ID: <4EC3535F.8080509@HIDDEN>
Date: Tue, 15 Nov 2011 22:08:31 -0800
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
User-Agent: Mozilla/5.0 (X11; Linux i686;
	rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
MIME-Version: 1.0
To: "Linda A. Walsh" <gnu@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2CA5D.4060100@HIDDEN>
	<4EC2CF9F.7000505@HIDDEN> <4EC2D498.1080803@HIDDEN>
	<4EC32EF0.605@HIDDEN>
In-Reply-To: <4EC32EF0.605@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spam-Score: -2.9 (--)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -2.9 (--)

On 11/15/11 19:33, Linda A. Walsh wrote:
> Why don't we
> focus on the specific problem mentioned which was using it in the context of
> the "-u" flag, (and with -a/-r and/or a wildcard), where you expect it to update
> contents of 'Dst' with 'Src'.

I'd rather not have a heuristic that says "cp removes the destination
when interrupted, if you use the -u flag with -a or -r or a wildcard".
That'd be a hard rule to remember, and it's probably not the "best"
rule anyway, for somebody's opinion of "best".  We need a simple rule
that's easy to document and to remember, even if it isn't necessarily
the "best" by some other measure.

It'd be OK if "cp -a" implies the new --remove-destination=signal
(or whatever) option.  Then you could just use "cp -a".

> cp could check file sizes and see
> if the target is smaller and if so.. assume, if the DT's were equal that the file cp was
> interrupted...and finish it...

I'm still not convinced by the idea about trusting the time stamp on
the destination.  Every time 'cp' writes to its destination, it will
update the destination's time stamp.  Sure, 'cp' can use utime immediately
afterwards to alter the time stamp, but there's still a window where
the destination's time stamp will be 'now'.  In general 'cp' must
continue to work in that case -- so why should it bother to reset the
destination's time stamp after every write?




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 16 Nov 2011 04:37:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 23:37:56 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQXFy-0005MY-Ar
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 23:37:55 -0500
Received: from ishtar.tlinx.org ([173.164.175.65] helo=Ishtar.sc.tlinx.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <gnu@HIDDEN>) id 1RQWGA-0003rv-L8
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 22:34:07 -0500
Received: from [192.168.3.140] (Athenae [192.168.3.140])
	by Ishtar.sc.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id
	pAG3X46O010697; Tue, 15 Nov 2011 19:33:08 -0800
Message-ID: <4EC32EF0.605@HIDDEN>
Date: Tue, 15 Nov 2011 19:33:04 -0800
From: "Linda A. Walsh" <gnu@HIDDEN>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;
	rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24
	Mnenhy/0.7.6.666
MIME-Version: 1.0
To: Paul Eggert <eggert@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information if
	interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2CA5D.4060100@HIDDEN>
	<4EC2CF9F.7000505@HIDDEN> <4EC2D498.1080803@HIDDEN>
In-Reply-To: <4EC2D498.1080803@HIDDEN>
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by Ishtar.sc.tlinx.org id
	pAG3X46O010697
X-Spam-Score: -1.1 (-)
X-Debbugs-Envelope-To: 10055
X-Mailman-Approved-At: Tue, 15 Nov 2011 23:37:53 -0500
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -1.1 (-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <style>
/* margin:(X):=3DT+B+R+L; (V H):V=3DT+B,H=3DR+L; (T H B):T,H=3DR+L, (T R =
B L) */
/*body { margin:.5cm .20cm;padding:.15cm .15cm;}*/
/* disable local font and span tags by default */
.l, body, .l p, .l table, .l tbody{
font: 14.3pt Constantia, Verdana, "Lucida Bright",Serif;
font-size-adjust:.44;
background-color:#faf8ff; color:#105070;
}
p { margin .5cm; text-indent:.5cm;}
p+p { margin-top.20cm;margin-bottom:.20cm}
.l small { font-size:85.18%;}
.l big { font-size:117.4%;}
.generic-font-families {
font-family:cursive,fantasy,sans-serif,serif,monospace;
}
.quoted { font-style:italic; font-size:90%;}
.l em { font-variant:small-caps }
/* font style var wght sz hght fam */
h6 {font: small-caps 700 89.308% }
h5 {font: small-caps 800 100% }
h4 {font: bold 113.601%}
h3 {font: bold 130.902%}
h2 {font: bold 152.909%}
h1 {font bold 180.902% }
/*h1,.l h2,.l h3,.l h4,.l h5 { font-size: inherit; font-weight:bold }
h5,.l h6 { font-size: inherit; font-variant:small-caps }*/
/* h5 {font: inherit; font-weight:800}
h6 {font: inherit; font-weight:700} */
h1,.l h2,.l h3,.l h4,.l h5,.l h6 { margin:.5em }
.l blockquote {margin:.5cm .9cm;}
.l blockquote .l p{ margin: .20cm .25cm;}
.l blockquote .l p, blockquote .l p+blockquote .l p { text-indent:-.35cm;=
 }
.l blockquote .l p+blockquote .l p { margin-top:.15cm;margin-bottom:.15cm=
}
.l pre, .l cite { padding:1cm .9cm; }
pre cite tt { font-style:oblique; background-color:#f0f4ff; color:#203040=
;
font-family:lucida console,monospace;}
.l pre+pre {
font-inherit; font-style:oblique; background-color:#f0f4ff; color:#203040=
;
margin:1ex .9cm}
address {
font inherit; font-style:oblique; font-family:Cambria;
}
.l address { font:inherit; margin:1em 2cm; background-color:#f8faff; }
.l address+address{ margin:0 1.5cm}
.l img { margin:.8cm }
.l q:before {content:open-quote }
.l q:after {content:close-quote }
.l a, a:link,a:focus,a:visited { text-decoration:underline }
a:link { color:#44BB33 }
a:focus { color: #22FF11 }
a:visited {color: #557722 }
.sig {
font oblique 3cm/1em "Lucida Handwriting",cursive;
text-indent:2cm;
margin: 3cm 8cm;
}
.sig:first-letter {
float:left;
font: italic 3in/1em "Lucida Calligraphy",cursive;
font-weight:200;
margin: -3cm -4mm inherit inherit;
}
#sig_fl {
float:left;
font:italic 3in/1em "Lucida Calligraphy";
font-weight:200;
padding:0;
margin-top: -3cm -4mm 0 0 ;
}
.MsoNormal, .MsoNormalTable{
padding:0; margin:0;
color:darkmagenta; background:honeydew;
font: oblique 14pt/95% Calibri,Verdana,Arial !important;
}

.MsoNormal span, .MsoNormalTable span{
font-family: inherit !important; font-size: inherit !important;
font-style: inherit !important; color: inherit !important;
}
span[font-family=3DArial], span[font-family=3D"Times New Roman"], font[fa=
ce=3DArial] ,font[face=3D"Times New Roman"]{
font-family: inherit !important; font-size-adjust:inherit !important;
font-size: inherit !important; line-height: inherit !important;
color: inherit !important;
}
/* vim: sts=3D2 sw=3D2 ts=3D2 si sc ai
*/
  </style>
</head>
<body>
<p> </p>
[Thought I send out rspns to this, but can't find it in my outgo,
so...recomposing/sending,<br>
sorry for delay)<br>
<blockquote id=3D"mid_4EC2D498_1080803_cs_ucla_edu"
 cite=3D"mid:4EC2D498.1080803@HIDDEN" type=3D"cite">
  <pre wrap=3D"">On 11/15/11 12:46, Linda A. Walsh wrote:

  </pre>
  <blockquote id=3D"StationeryCiteGenerated_4" type=3D"cite">
    <pre wrap=3D"">    Better than leaving <b class=3D"moz-txt-star"><spa=
n class=3D"moz-txt-tag">*</span>doo doo<span class=3D"moz-txt-tag">*</spa=
n></b> in a file
    </pre>
  </blockquote>
  <pre wrap=3D""><!---->Sometimes, but not always.  I can think of plausi=
ble cases where I'd
rather have a partial copy than no copy at all.  As an extreme example,
if I'm doing 'cp /dev/tty A', I do not want A removed on interrupt
even if A has already been truncated and overwritten,
as A contains the only copy of the data that I just typed in by hand.
  </pre>
</blockquote>
=3D=3D=3D=3D=3D<br>
=C2=A0=C2=A0=C2=A0 Um...yeah, you could try to apply the idea in general,=
 but it might
not have <br>
unforeseen side effects like you are demonstrating.=C2=A0=C2=A0 Why don't=
 we <br>
focus on the specific problem mentioned which was using it in the
context of<br>
the "-u" flag, (and with -a/-r and/or a wildcard), where you expect it
to update <br>
contents of 'Dst' with 'Src'.<br>
<br>
In that case, you get interrupt, and you end up with a truncated file
in Dst, that has<br>
some (not even the DT of the src file, but the DT the file was opened
(or more likely<br>
closed) DateTime that will guarantee, that a correct copy will never
get updated<br>
over the now, destroyed, bogus copy.=C2=A0 <br>
<br>
Not only that, but weeks later, when you go though your backup dir, and
wonder<br>
why some file 'x' is only 1/10th the size of the rest of the similar
backups, .... your <br>
original can be very gone...(not that 1 of the multiple other backups
might not sub-in, but <br>
that's not the point!)...=C2=A0 You don't want the partially copied updat=
e
-- that has already <br>
destroyed an original, to now leave a turd in place so that no future
cp -uav will correct<br>
the problem....<br>
<br>
Though, (I'm sure you'd love to see this in 'cp', (<b class=3D"moz-txt-st=
ar"><span class=3D"moz-txt-tag">*</span>cough<span class=3D"moz-txt-tag">=
*</span></b>), cp could
check file sizes and see<br>
if the target is smaller and if so.. assume, if the DT's were equal
that the file cp was<br>
interrupted...and finish it...<br>
<br>
Actually that might not be a bad idea...<br>
<br>
<br>
<blockquote id=3D"mid_4EC2D498_1080803_cs_ucla_edu"
 cite=3D"mid:4EC2D498.1080803@HIDDEN" type=3D"cite">
  <blockquote id=3D"StationeryCiteGenerated_5" type=3D"cite">
    <blockquote id=3D"StationeryCiteGenerated_6" type=3D"cite">
      <pre wrap=3D"">But we could add an option to 'cp' to have this beha=
vior.
Perhaps --remove-destination=3Dsignal?  That is --remove-destination
could have an optional list of names of places where the destination
could be removed, where the default is not to remove it, and
plain --remove-destination means --remove-destination=3Dbefore.
      </pre>
    </blockquote>
    <pre wrap=3D"">----
    I think you misunderstood the problem.
    </pre>
  </blockquote>
  <pre wrap=3D""><!---->Perhaps I did.  But could you explain the problem=
 then?  For example,
how would the proposed "cp --remove-destination=3Dsignal A B"
not address the problem?
  </pre>
</blockquote>
<br>
Well, if it were the default case, sure, but if default is to trash
files, that's bad.<br>
<br>
<br>
</body>
</html>




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 15 Nov 2011 22:32:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 17:32:09 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQRXx-0004ml-4H
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 17:32:09 -0500
Received: from mx1.redhat.com ([209.132.183.28])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <P@HIDDEN>) id 1RQRXq-0004mJ-7p
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 17:32:03 -0500
Received: from int-mx01.intmail.prod.int.phx2.redhat.com
	(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
	by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id pAFMVEOQ012784
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
	Tue, 15 Nov 2011 17:31:14 -0500
Received: from [10.36.116.24] (ovpn-116-24.ams2.redhat.com [10.36.116.24])
	by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
	id pAFMVBaF003964
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Tue, 15 Nov 2011 17:31:13 -0500
Message-ID: <4EC2E82F.1020305@HIDDEN>
Date: Tue, 15 Nov 2011 22:31:11 +0000
From: =?UTF-8?B?UMOhZHJhaWcgQnJhZHk=?= <P@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:6.0) Gecko/20110816 Thunderbird/6.0
MIME-Version: 1.0
To: Paul Eggert <eggert@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2CA5D.4060100@HIDDEN>
In-Reply-To: <4EC2CA5D.4060100@HIDDEN>
X-Enigmail-Version: 1.3.2
Content-Type: text/plain; charset=UTF-8
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by mx1.redhat.com id
	pAFMVEOQ012784
X-Spam-Score: -10.5 (----------)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org, Linda Walsh <coreutils@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -10.5 (----------)

On 11/15/2011 08:23 PM, Paul Eggert wrote:
> Thanks for your thoughtful suggestions.
> I like many of the ideas and hope that somebody can find the time
> to code them up.  Here are some more-detailed comments.
>=20
> On 11/15/11 11:07, Linda Walsh wrote:
>=20
>>   3). use posix_fallocate (if available) to allocate sufficient space =
for the
>> copy
>=20
> This seems like a good idea, independently of the other points.
> That is, if A and B are regular files, "cp A B" could
> use A's size to preallocate B's storage, and it could
> fail immediately (without trashing B!) if there's not
> enough storage.  I like this.

I'll take a look at this at some stage.
I was intending to do it right after the fiemap stuff
as it was quite related, but that needed to be bypassed
for normal copies. Anyway I'll bump fallocate
up my priority list.

>=20
>> A) catch INT (& catchable signals), and remove any files that are
>> 'incomplete'
>=20
> That might cause trouble in other cases.  For example, "cp A B" where
> B already exists.  In this case it's unwise to remove B if interrupted
> -- people won't expect that.  And in general 'cp' has behaved the way
> that it does for decades, and we need to be careful about changing its
> default behavior in such a fairly-drastic way.
>=20
> But we could add an option to 'cp' to have this behavior.
> Perhaps --remove-destination=3Dsignal?  That is --remove-destination
> could have an optional list of names of places where the destination
> could be removed, where the default is not to remove it, and
> plain --remove-destination means --remove-destination=3Dbefore.
>=20
>> B) 1). open destination name for write (verifying accesses) w/
>>       Exclusive Write;
>=20
> This could be another new option, though (as you write) it's
> orthogonal to the main point.  I would suggest that this option be
> called --oflag=3Dexcl (by analogy with dd's oflag=3D option).  We can a=
dd
> support for the other output flags while we're at it, e.g.,
> --oflag=3Dexcl,append,noatime.
>=20
>>   2). open tmp file for actual cp operation.
>>   5); rename tmp over original; (closing original before rename on sys=
tems
>> that don't support separation of names and FD's (Win systems et al).
>=20
> Yes, that could be another option.  I see (2) and (5) as being the
> same feature.  Perhaps --remove-destination=3Dafter?

There are lots of implementation issues with tmp files,
many of which are noted here:
http://www.pixelbeat.org/docs/unix_file_replacement.html

>=20
>> C) reset DT stamps on newly opened files to '0' (~1969/70?)'
>=20
> I dunno, this kind of time stamp munging sounds like it'd cause more
> trouble than it'd cure.  It's more natural (and easier to debug
> failures) if the last-modified time of a file is the time that the
> file was last modified.

Not a bad idea and least invasive, but if the Ctrl-C happened
between the creat() and utime() you'd get a newer zero length file.
Then subsequent `cp -u` would have to treat zero length files specially.

cheers,
P=C3=A1draig.




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 15 Nov 2011 22:29:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 17:29:13 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQRVB-0004hp-Ca
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 17:29:13 -0500
Received: from ishtar.tlinx.org ([173.164.175.65] helo=Ishtar.sc.tlinx.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <gnu@HIDDEN>) id 1RQRLO-0004Tn-DL
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 17:19:08 -0500
Received: from [192.168.3.140] (Athenae [192.168.3.140])
	by Ishtar.sc.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id
	pAFMIDj4017793; Tue, 15 Nov 2011 14:18:15 -0800
Message-ID: <4EC2E526.5040409@HIDDEN>
Date: Tue, 15 Nov 2011 14:18:14 -0800
From: "Linda A. Walsh" <gnu@HIDDEN>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;
	rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24
	Mnenhy/0.7.6.666
MIME-Version: 1.0
To: Paul Eggert <eggert@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information if
	interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2CA5D.4060100@HIDDEN>
	<4EC2CF9F.7000505@HIDDEN> <4EC2D498.1080803@HIDDEN>
In-Reply-To: <4EC2D498.1080803@HIDDEN>
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spam-Score: -1.1 (-)
X-Debbugs-Envelope-To: 10055
X-Mailman-Approved-At: Tue, 15 Nov 2011 17:29:12 -0500
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -1.1 (-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <style>
/* margin:(X):=T+B+R+L; (V H):V=T+B,H=R+L; (T H B):T,H=R+L, (T R B L) */
/*body { margin:.5cm .20cm;padding:.15cm .15cm;}*/
/* disable local font and span tags by default */
.l, body, .l p, .l table, .l tbody{
font: 14.3pt Constantia, Verdana, "Lucida Bright",Serif;
font-size-adjust:.44;
background-color:#faf8ff; color:#105070;
}
p { margin .5cm; text-indent:.5cm;}
p+p { margin-top.20cm;margin-bottom:.20cm}
.l small { font-size:85.18%;}
.l big { font-size:117.4%;}
.generic-font-families {
font-family:cursive,fantasy,sans-serif,serif,monospace;
}
.quoted { font-style:italic; font-size:90%;}
.l em { font-variant:small-caps }
/* font style var wght sz hght fam */
h6 {font: small-caps 700 89.308% }
h5 {font: small-caps 800 100% }
h4 {font: bold 113.601%}
h3 {font: bold 130.902%}
h2 {font: bold 152.909%}
h1 {font bold 180.902% }
/*h1,.l h2,.l h3,.l h4,.l h5 { font-size: inherit; font-weight:bold }
h5,.l h6 { font-size: inherit; font-variant:small-caps }*/
/* h5 {font: inherit; font-weight:800}
h6 {font: inherit; font-weight:700} */
h1,.l h2,.l h3,.l h4,.l h5,.l h6 { margin:.5em }
.l blockquote {margin:.5cm .9cm;}
.l blockquote .l p{ margin: .20cm .25cm;}
.l blockquote .l p, blockquote .l p+blockquote .l p { text-indent:-.35cm; }
.l blockquote .l p+blockquote .l p { margin-top:.15cm;margin-bottom:.15cm}
.l pre, .l cite { padding:1cm .9cm; }
pre cite tt { font-style:oblique; background-color:#f0f4ff; color:#203040;
font-family:lucida console,monospace;}
.l pre+pre {
font-inherit; font-style:oblique; background-color:#f0f4ff; color:#203040;
margin:1ex .9cm}
address {
font inherit; font-style:oblique; font-family:Cambria;
}
.l address { font:inherit; margin:1em 2cm; background-color:#f8faff; }
.l address+address{ margin:0 1.5cm}
.l img { margin:.8cm }
.l q:before {content:open-quote }
.l q:after {content:close-quote }
.l a, a:link,a:focus,a:visited { text-decoration:underline }
a:link { color:#44BB33 }
a:focus { color: #22FF11 }
a:visited {color: #557722 }
.sig {
font oblique 3cm/1em "Lucida Handwriting",cursive;
text-indent:2cm;
margin: 3cm 8cm;
}
.sig:first-letter {
float:left;
font: italic 3in/1em "Lucida Calligraphy",cursive;
font-weight:200;
margin: -3cm -4mm inherit inherit;
}
#sig_fl {
float:left;
font:italic 3in/1em "Lucida Calligraphy";
font-weight:200;
padding:0;
margin-top: -3cm -4mm 0 0 ;
}
.MsoNormal, .MsoNormalTable{
padding:0; margin:0;
color:darkmagenta; background:honeydew;
font: oblique 14pt/95% Calibri,Verdana,Arial !important;
}

.MsoNormal span, .MsoNormalTable span{
font-family: inherit !important; font-size: inherit !important;
font-style: inherit !important; color: inherit !important;
}
span[font-family=Arial], span[font-family="Times New Roman"], font[face=Arial] ,font[face="Times New Roman"]{
font-family: inherit !important; font-size-adjust:inherit !important;
font-size: inherit !important; line-height: inherit !important;
color: inherit !important;
}
/* vim: sts=2 sw=2 ts=2 si sc ai
*/
  </style>
</head>
<body>
<p> </p>
<br>
<br>
Paul Eggert wrote:
<blockquote id="mid_4EC2D498_1080803_cs_ucla_edu"
 cite="mid:4EC2D498.1080803@HIDDEN" type="cite">
  <pre wrap="">On 11/15/11 12:46, Linda A. Walsh wrote:

  </pre>
  <blockquote id="StationeryCiteGenerated_1" type="cite">
    <pre wrap="">    Better than leaving <b class="moz-txt-star"><span class="moz-txt-tag">*</span>doo doo<span class="moz-txt-tag">*</span></b> in a file
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Sometimes, but not always.  I can think of plausible cases where I'd
rather have a partial copy than no copy at all.  As an extreme example,
if I'm doing 'cp /dev/tty A', I do not want A removed on interrupt
even if A has already been truncated and overwritten,
as A contains the only copy of the data that I just typed in by hand.

  </pre>
  <blockquote id="StationeryCiteGenerated_2" type="cite">
    <blockquote id="StationeryCiteGenerated_3" type="cite">
      <pre wrap="">But we could add an option to 'cp' to have this behavior.
Perhaps --remove-destination=signal?  That is --remove-destination
could have an optional list of names of places where the destination
could be removed, where the default is not to remove it, and
plain --remove-destination means --remove-destination=before.
      </pre>
    </blockquote>
    <pre wrap="">----
    I think you misunderstood the problem.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Perhaps I did.  But could you explain the problem then?  For example,
how would the proposed "cp --remove-destination=signal A B"
not address the problem?
  </pre>
</blockquote>
</body>
</html>




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 15 Nov 2011 21:08:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 16:08:27 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQQF0-0002q4-Hj
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 16:08:27 -0500
Received: from smtp.cs.ucla.edu ([131.179.128.62])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <eggert@HIDDEN>) id 1RQQEy-0002pp-2s
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 16:08:25 -0500
Received: from localhost (localhost.localdomain [127.0.0.1])
	by smtp.cs.ucla.edu (Postfix) with ESMTP id BAE3439E800C;
	Tue, 15 Nov 2011 13:07:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu
Received: from smtp.cs.ucla.edu ([127.0.0.1])
	by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id ZNj1duMUFQxn; Tue, 15 Nov 2011 13:07:36 -0800 (PST)
Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200])
	by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 56EB739E8006;
	Tue, 15 Nov 2011 13:07:36 -0800 (PST)
Message-ID: <4EC2D498.1080803@HIDDEN>
Date: Tue, 15 Nov 2011 13:07:36 -0800
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:7.0) Gecko/20110927 Thunderbird/7.0
MIME-Version: 1.0
To: "Linda A. Walsh" <law@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2CA5D.4060100@HIDDEN>
	<4EC2CF9F.7000505@HIDDEN>
In-Reply-To: <4EC2CF9F.7000505@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spam-Score: -3.0 (---)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -3.0 (---)

On 11/15/11 12:46, Linda A. Walsh wrote:

>     Better than leaving *doo doo* in a file

Sometimes, but not always.  I can think of plausible cases where I'd
rather have a partial copy than no copy at all.  As an extreme example,
if I'm doing 'cp /dev/tty A', I do not want A removed on interrupt
even if A has already been truncated and overwritten,
as A contains the only copy of the data that I just typed in by hand.

>> But we could add an option to 'cp' to have this behavior.
>> Perhaps --remove-destination=signal?  That is --remove-destination
>> could have an optional list of names of places where the destination
>> could be removed, where the default is not to remove it, and
>> plain --remove-destination means --remove-destination=before.
> 
> ----
>     I think you misunderstood the problem.

Perhaps I did.  But could you explain the problem then?  For example,
how would the proposed "cp --remove-destination=signal A B"
not address the problem?




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 15 Nov 2011 20:47:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 15:47:23 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQPud-0002N9-O4
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 15:47:23 -0500
Received: from ishtar.tlinx.org ([173.164.175.65] helo=Ishtar.sc.tlinx.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <law@HIDDEN>) id 1RQPub-0002N0-6I
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 15:47:23 -0500
Received: from [192.168.3.140] (Athenae [192.168.3.140])
	by Ishtar.sc.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id
	pAFKkMMV022108; Tue, 15 Nov 2011 12:46:24 -0800
Message-ID: <4EC2CF9F.7000505@HIDDEN>
Date: Tue, 15 Nov 2011 12:46:23 -0800
From: "Linda A. Walsh" <law@HIDDEN>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;
	rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24
	Mnenhy/0.7.6.666
MIME-Version: 1.0
To: Paul Eggert <eggert@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information if
	interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN> <4EC2CA5D.4060100@HIDDEN>
In-Reply-To: <4EC2CA5D.4060100@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -2.6 (--)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -2.6 (--)



Paul Eggert wrote:


> 
>> A) catch INT (& catchable signals), and remove any files that are
>> 'incomplete'
> 
> That might cause trouble in other cases.  For example, "cp A B" where
> B already exists. 

===
	Am **only** suggesting this where 'B' has already been opened
and truncated by stuff being copied from 'A'...

	The point is to not leave a 'B' that is *indeterminate*.


 In this case it's unwise to remove B if interrupted
> -- people won't expect that.  

--
	Better than leaving *doo doo* in a file where they expect
some.thing valid.

And in general 'cp' has behaved the way
> that it does for decades, and we need to be careful about changing its
> default behavior in such a fairly-drastic way.

----
	It's a bug...Fixing a bug isn't usually considered
drastic.

> 
> But we could add an option to 'cp' to have this behavior.
> Perhaps --remove-destination=signal?  That is --remove-destination
> could have an optional list of names of places where the destination
> could be removed, where the default is not to remove it, and
> plain --remove-destination means --remove-destination=before.

----
	I think you misunderstood the problem.






Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 15 Nov 2011 20:24:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 15:24:50 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQPYo-0001qf-CF
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 15:24:50 -0500
Received: from smtp.cs.ucla.edu ([131.179.128.62])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <eggert@HIDDEN>) id 1RQPYk-0001qO-Nf
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 15:24:48 -0500
Received: from localhost (localhost.localdomain [127.0.0.1])
	by smtp.cs.ucla.edu (Postfix) with ESMTP id 3D3E239E800A;
	Tue, 15 Nov 2011 12:23:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu
Received: from smtp.cs.ucla.edu ([127.0.0.1])
	by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id 3GUSq6bf0iMK; Tue, 15 Nov 2011 12:23:58 -0800 (PST)
Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200])
	by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 2837939E8006;
	Tue, 15 Nov 2011 12:23:58 -0800 (PST)
Message-ID: <4EC2CA5D.4060100@HIDDEN>
Date: Tue, 15 Nov 2011 12:23:57 -0800
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:7.0) Gecko/20110927 Thunderbird/7.0
MIME-Version: 1.0
To: Linda Walsh <coreutils@HIDDEN>
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN>
In-Reply-To: <4EC2B883.40409@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spam-Score: -3.0 (---)
X-Debbugs-Envelope-To: 10055
Cc: 10055 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -3.0 (---)

Thanks for your thoughtful suggestions.
I like many of the ideas and hope that somebody can find the time
to code them up.  Here are some more-detailed comments.

On 11/15/11 11:07, Linda Walsh wrote:

>   3). use posix_fallocate (if available) to allocate sufficient space for the
> copy

This seems like a good idea, independently of the other points.
That is, if A and B are regular files, "cp A B" could
use A's size to preallocate B's storage, and it could
fail immediately (without trashing B!) if there's not
enough storage.  I like this.

> A) catch INT (& catchable signals), and remove any files that are
> 'incomplete'

That might cause trouble in other cases.  For example, "cp A B" where
B already exists.  In this case it's unwise to remove B if interrupted
-- people won't expect that.  And in general 'cp' has behaved the way
that it does for decades, and we need to be careful about changing its
default behavior in such a fairly-drastic way.

But we could add an option to 'cp' to have this behavior.
Perhaps --remove-destination=signal?  That is --remove-destination
could have an optional list of names of places where the destination
could be removed, where the default is not to remove it, and
plain --remove-destination means --remove-destination=before.

> B) 1). open destination name for write (verifying accesses) w/
>       Exclusive Write;

This could be another new option, though (as you write) it's
orthogonal to the main point.  I would suggest that this option be
called --oflag=excl (by analogy with dd's oflag= option).  We can add
support for the other output flags while we're at it, e.g.,
--oflag=excl,append,noatime.

>   2). open tmp file for actual cp operation.
>   5); rename tmp over original; (closing original before rename on systems
> that don't support separation of names and FD's (Win systems et al).

Yes, that could be another option.  I see (2) and (5) as being the
same feature.  Perhaps --remove-destination=after?

> C) reset DT stamps on newly opened files to '0' (~1969/70?)'

I dunno, this kind of time stamp munging sounds like it'd cause more
trouble than it'd cure.  It's more natural (and easier to debug
failures) if the last-modified time of a file is the time that the
file was last modified.





Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at 10055 <at> debbugs.gnu.org:


Received: (at 10055) by debbugs.gnu.org; 15 Nov 2011 19:36:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 14:36:42 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQOoD-0000iq-Qc
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 14:36:42 -0500
Received: from ishtar.tlinx.org ([173.164.175.65] helo=Ishtar.sc.tlinx.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <law@HIDDEN>) id 1RQOaQ-0000On-0a
	for 10055 <at> debbugs.gnu.org; Tue, 15 Nov 2011 14:22:27 -0500
Received: from [192.168.3.140] (Athenae [192.168.3.140])
	by Ishtar.sc.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id
	pAFJLcCn027636
	for <10055 <at> debbugs.gnu.org>; Tue, 15 Nov 2011 11:21:41 -0800
Message-ID: <4EC2BBC3.3060203@HIDDEN>
Date: Tue, 15 Nov 2011 11:21:39 -0800
From: "Linda A. Walsh" <law@HIDDEN>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;
	rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24
	Mnenhy/0.7.6.666
MIME-Version: 1.0
To: 10055 <at> debbugs.gnu.org
Subject: Re: bug#10055: [sr #107875] BUG cp -u corrupts 'fs'' information
	if	interupted; can't recover on future invoctions
References: <4EC2B883.40409@HIDDEN>
In-Reply-To: <4EC2B883.40409@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -2.6 (--)
X-Debbugs-Envelope-To: 10055
X-Mailman-Approved-At: Tue, 15 Nov 2011 14:36:40 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -2.6 (--)

Hmmm....   Dang strange processes on bugs...  can't submit directly bug 
can just by
emailing it to the email list?   ...  (bureaucracy!)

Linda Walsh wrote:
> This should be filed under bugs, not under support, but it seems that 
> users of
> the core utilis are ot allowed to find bugs...convenient.




Information forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 15 Nov 2011 19:09:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 15 14:09:00 2011
Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1RQONM-0008W2-D0
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 14:09:00 -0500
Received: from eggs.gnu.org ([140.186.70.92])
	by debbugs.gnu.org with esmtp (Exim 4.69)
	(envelope-from <coreutils@HIDDEN>) id 1RQONH-0008Vn-FM
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 14:08:55 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <coreutils@HIDDEN>) id 1RQOMT-0008Fs-QF
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 14:08:05 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,HS_INDEX_PARAM,
	RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
Received: from lists.gnu.org ([140.186.70.17]:54845)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <coreutils@HIDDEN>) id 1RQOMT-0008Fo-Oi
	for submit <at> debbugs.gnu.org; Tue, 15 Nov 2011 14:08:01 -0500
Received: from eggs.gnu.org ([140.186.70.92]:35083)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <coreutils@HIDDEN>) id 1RQOMP-00019K-LP
	for bug-coreutils@HIDDEN; Tue, 15 Nov 2011 14:08:01 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <coreutils@HIDDEN>) id 1RQOML-0008EJ-Gm
	for bug-coreutils@HIDDEN; Tue, 15 Nov 2011 14:07:57 -0500
Received: from ishtar.tlinx.org ([173.164.175.65]:49237
	helo=Ishtar.sc.tlinx.org) by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <coreutils@HIDDEN>) id 1RQOMJ-0008Dm-Qq
	for bug-coreutils@HIDDEN; Tue, 15 Nov 2011 14:07:53 -0500
Received: from [192.168.3.140] (Athenae [192.168.3.140])
	by Ishtar.sc.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id
	pAFJ7lcv024074
	for <bug-coreutils@HIDDEN>; Tue, 15 Nov 2011 11:07:49 -0800
Message-ID: <4EC2B883.40409@HIDDEN>
Date: Tue, 15 Nov 2011 11:07:47 -0800
From: Linda Walsh <coreutils@HIDDEN>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;
	rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24
	Mnenhy/0.7.6.666
MIME-Version: 1.0
To: bug-coreutils@HIDDEN
Subject: [sr #107875] BUG cp -u corrupts 'fs'' information if interupted;
	can't recover on future invoctions
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
	recognized.
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3)
X-Received-From: 140.186.70.17
X-Spam-Score: -5.4 (-----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.11
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: -5.5 (-----)







-------- Original Message --------
Subject: 	[sr #107875] BUG cp -u corrupts 'fs'' information if 
interupted; can't recover on future invoctions
Date: 	Tue, 15 Nov 2011 17:58:23 +0000
From: 	Linda A. Walsh <INVALID.NOREPLY@HIDDEN>
To: 	Linda A. Walsh <>



URL:
  <http://savannah.gnu.org/support/?107875>

                 Summary: BUG cp -u corrupts 'fs'' information if interupted;
can't recover on future invoctions
                 Project: GNU Core Utilities
            Submitted by: law
            Submitted on: Tue Nov 15 09:58:22 2011
                Category: None
                Priority: 5 - Normal
                Severity: 3 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None

    _______________________________________________________

Details:

This should be filed under bugs, not under support, but it seems that users of
the core utilis are ot allowed to find bugs...convenient.  No wonder quality
metrics worthless.

Not trying for a sensationalist summary, but you try coming up with a SHORT
accurate summary for this.

The problem is bad (in the sense of providing false assurance and not being
reliable), but not as bad as the summary might sound...

if you copy a bunch of files (or 1 file for that matter, but then it _might_
be more quickly noticed, and the copy is interrupted (most often control-C,
cuz some param was forgotten, but could be other causes),  a partial file with
the current time stamp is left in the target location and the corrupt copy is
not removed upon interruption, though it is marked as being "current"
(w/current DT stamp).

This creates a corrupt copy of the file in a collection of files that
subsequent cp -u won't correct.  This is a problem.

As there is no indication in a collection of how many files are corrupted in
this manner...and the sources may have long been deleted.  

If interrupted, the cp tool should remove any partials or ensure they are not
created to begin with.

Possible ways of addressing:
A) catch INT (& catchable signals), and remove any files that are
'incomplete'
Besides that, several other steps could be taken to provide increasing
protections (some are orthogonal, some dependent):
B) 1). open destination name for write (verifying accesses) w/
       Exclusive Write;
   2). open tmp file for actual cp operation.
   3). use posix_fallocate (if available) to allocate sufficient space for the
copy
   4). do the copy.
   5); rename tmp over original; (closing original before rename on systems
that don't support separation of names and FD's (Win systems et al).
C) reset DT stamps on newly opened files to '0' (~1969/70?)' in all
non-auto-updated fields; -- then start copy...  any future 
invokations of "cp -u could examine the time stamps, and if the
non-auto-updated fields appear to be zero; do the copy (and correct the time
stamps) with 2 possible exception conditions being noted:
      (a) if the source file also has '0'd time fields, then check file
sizes:
       if they match presume 'ok' (a statistical 'guess', -- possibly warned
about with a -verbose option), 
       if sizes don't match, presume not a correct update and do the copy.  
D) others?

As this is, it creates a situation of cp being unreliable.

Note, 'rsync' isn't a great substitute either, as I've ntoed
that when I was updating files with 'rsync', (which is always slower on full
file copies) with equivalent options, a later
usage of "cp -uav to copy the files recopied most of the files
(all? not sure)  that rsync had copied with -aUVHAX (supposedly the same info
as cp -au from my understanding)).

The same was not true for the reverse case (files cp'ed and updated by cp,
were not updated by rsync, -- leading me to suspect rsync as not only being
significantly slower, but not as thorough in copying over information).

FWIW, I feel it important to file bugs about tools that are currently the best
in their class...(and tend to devote my attentions to wanting to see them
enhanced, even beyond their original scope at times);  rsync used to have a
very basic feature which put it above cp, ... it copied extended attrs and
ACLS.  Now that cp does that, and that cp was about 2-3x faster
than rsync for full files...







    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/support/?107875>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/






Acknowledgement sent to Linda Walsh <coreutils@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-coreutils@HIDDEN. Full text available.
Report forwarded to bug-coreutils@HIDDEN:
bug#10055; Package coreutils. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 25 Nov 2019 12:00:02 UTC

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