On Tue, Nov 12, 2019 at 8:51 AM Joerg Sonnenberger <jo...@bec.de> wrote:
>
> On Tue, Nov 12, 2019 at 08:25:46AM -0500, Greg Troxel wrote:
> > David Brownlee <a...@absd.org> writes:
> >
> > > On Tue, 12 Nov 2019 at 11:33, Jaromír Doleček <jaromir.dole...@gmail.com> 
> > > wrote:
> > >>
> > >> Le mar. 12 nov. 2019 à 12:05, Martin Husemann <mar...@duskware.de> a 
> > >> écrit :
> > >>>
> > >>> Not seen this locally, but that would be the switch to bsd/libarchive 
> > >>> tar.
> > >>> Maybe it does not unlink files before extraction and replaces them 
> > >>> in-space?
> > >>>
> > >>> I do the same kind of updates, but usually on a very quiet system.
> > >>>
> > >>> The crashes you see are from other running processes? Joerg would likely
> > >>> say: "don't do that" ;-)
> > >>>
> > >>
> > >> I thought we do unlink by default, I think I remember a commit to that 
> > >> effect in past. The unlink is very useful default behaviour of GNU tar. 
> > >> In-place overwrite is very rarely the wanted behaviour.
> > >
> > > Aha thanks!
> > >
> > > I would argue the switch to unlink no longer being the default is a
> > > regression. If its mandated by standards or we're the only outlier
> > > then it probably makes sense to switch, but otherwise its sprinkling
> > > occasional non deterministic breakage across a bunch of scripts which
> > > previously ran fine on NetBSD.
>
> It does not force an unlink first, but will unlink if there is a
> conflict. So the question would be why open(2) with O_CREAT|O_EXCL
> doesn't fail.
>
> > I'm not quite clear on 'unlink by default', but it seems to me the
> > replacement files should be written to a temporary name and then
> > renamed() into place so the file is either the old version or the new
> > version.
>
> That would dramatically increase the time it takes for an untar for
> little to no gain.
>
> Joerg

If you try the same thing on FreeBSD does the same error happen?

Reply via email to