Subject: bug#60455: closed (Re: bug#60455: Missing fallback if copy_file_range returns ENOENT?)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 08 Jan 2023 13:46:02 +0000

Your bug report

#60455: Missing fallback if copy_file_range returns ENOENT?

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
60455: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60455
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#60455: Missing fallback if copy_file_range returns ENOENT?
From: Pádraig Brady <[email-masked]>
To: Sam James <[email-masked]>
Cc: [email-masked]
Date: Sun, 8 Jan 2023 13:45:40 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

On 08/01/2023 00:51, Sam James wrote:
> 
> 
>> On 7 Jan 2023, at 16:25, Pádraig Brady <[email-masked]> wrote:

>> OK it's probably worth handling in coreutils then.
>> Note I still get the feeling this is a race in CIFS
>> that is only being made more apparent with copy_file_range(),
>> but fair enough that this is a regressions for users and
>> we should be able to cater for it easy enough.

Or more precisely, ENOENT will be unusual for fd operations,
and so falling back to a standard copy should just be
restricted to this or similar cases.

If this was seen on a single CIFS mount it may be
less appropriate as then the user may not want to
fall back to a client side copy, when a server side should work.
But in this separate mount case, the fallback is appropriate.
I guess we could restrict to separate device IDs,
but that's probably getting too complicated for this.

> Total agreement. Thanks, looks good!

Pushed.
Marking this as done.

cheers,
Pádraig

Subject: Missing fallback if copy_file_range returns ENOENT?
From: Sam James <[email-masked]>
To: [email-masked]
Date: Sat, 31 Dec 2022 17:00:48 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi folks,

Originally reported in Gentoo at https://bugs.gentoo.org/885793.

Frank Limpert reported that when copying large files across CIFS shares,
cp may abort because copy_file_range returns ENOENT sometimes.

This sounds like a suspicious kernel bug if CIFS interactions are sometimes
spuriously giving ENOENT, but I'm wondering if coreutils needs to do
anything to handle this as well.

strace output from his cp invocation: https://bugs.gentoo.org/attachment.cgi?id=842497

Best,
sam