GNU bug report logs - #56391
`cp --reflink=always` creates empty file on failure

Previous Next

Package: coreutils;

Reported by: Benjamin Gilbert <bgilbert <at> backtick.net>

Date: Tue, 5 Jul 2022 08:16:01 UTC

Severity: normal

Merged with 56392

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #23 received at 56391 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Pádraig Brady <P <at> draigBrady.com>
Cc: bgilbert <at> backtick.net, 56391 <at> debbugs.gnu.org
Subject: Re: bug#56391: `cp --reflink=always` creates empty file on failure
Date: Wed, 6 Jul 2022 14:48:33 -0500
[Message part 1 (text/plain, inline)]
On 7/6/22 06:17, Pádraig Brady wrote:
> This will usually work, but there are cases where this may lose data,
> as previously discussed at:
>
> https://bugzilla.redhat.com/show_bug.cgi?id=921708
> http://lists.gnu.org/archive/html/coreutils/2013-03/msg00056.html
>
> I'm not sure cp can robustly clean up in this situation? 

Thanks for pointing me to those old discussions. As I understand it, the 
worry is that FICLONE will only partly succeed, causing the destination 
file to contain some (but not all) the input data, and then if we remove 
the output file we'll lose the newly-made partial clone. I don't know 
whether FICLONE can do that, but it sounds like a reasonable worry.

If that understanding is correct, then the attached further patch should 
suffice, so I boldly installed it.
[0001-cp-don-t-remove-nonempty-cloned-dest.patch (text/x-patch, attachment)]

This bug report was last modified 3 years and 47 days ago.

Previous Next


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