Bug#923420: coreutils: mv broken when file system doesn't support RENAME_NOREPLACE

2019-02-27 Thread Johannes Schauer
Hi Felix,

Quoting Felix Geyer (2019-02-27 23:16:15)
> With those distro patches from version 8.30-2 mv fails on filesystems that 
> don't
> support the renameat2 RENAME_NOREPLACE flag.
> I noticed this because coreutils 8.30-2 breaks autopkgtest with the qemu 
> runner
> which calls mv on a 9p filesystem.
> 
> renameatu.patch is the offender as it only changes renameat2() calls to 
> renameatu()
> in lib/ but not in src/.
> As a result some tools call the glibc renameat2() instead of the gnulib one 
> which
> has appropriate fallbacks.
> I haven't checked what other tools are exactly affected (calls are in mv.c, 
> shred.c
> and copy.c).
> 
> After an extended debugging session,

wow, that must've been a "fun" session until you figured out what was wrong!

Unfortunately, I'm still on holidays until March 3, so I cannot look into the
situation before then due to very limited internet access in the Swedish
mountains.

I'm sorry I missed this issue my patch created on filesystems that don't
support the RENAME_NOREPLACE flag. :(

cheers, josch


signature.asc
Description: signature


Bug#923420: coreutils: mv broken when file system doesn't support RENAME_NOREPLACE

2019-02-27 Thread Felix Geyer
Package: coreutils
Version: 8.30-2
Severity: serious

Hi,

With those distro patches from version 8.30-2 mv fails on filesystems that don't
support the renameat2 RENAME_NOREPLACE flag.
I noticed this because coreutils 8.30-2 breaks autopkgtest with the qemu runner
which calls mv on a 9p filesystem.

renameatu.patch is the offender as it only changes renameat2() calls to 
renameatu()
in lib/ but not in src/.
As a result some tools call the glibc renameat2() instead of the gnulib one 
which
has appropriate fallbacks.
I haven't checked what other tools are exactly affected (calls are in mv.c, 
shred.c
and copy.c).

After an extended debugging session,
Felix