Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: tar extract changed since netbsd-8? (extracting sets over running system)



On Tue, Nov 12, 2019 at 8:51 AM Joerg Sonnenberger <joerg%bec.de@localhost> wrote:
>
> On Tue, Nov 12, 2019 at 08:25:46AM -0500, Greg Troxel wrote:
> > David Brownlee <abs%absd.org@localhost> writes:
> >
> > > On Tue, 12 Nov 2019 at 11:33, Jaromír Doleček <jaromir.dolecek%gmail.com@localhost> wrote:
> > >>
> > >> Le mar. 12 nov. 2019 à 12:05, Martin Husemann <martin%duskware.de@localhost> 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?


Home | Main Index | Thread Index | Old Index