Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Nov 2018 21:36:43 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 233006] [regression] bsdtar aborts creation of archive on ENOENT
Message-ID:  <bug-233006-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D233006

            Bug ID: 233006
           Summary: [regression] bsdtar aborts creation of archive on
                    ENOENT
           Product: Base System
           Version: 11.2-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Keywords: regression
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: eugen@freebsd.org
                CC: mm@FreeBSD.org
             Flags: mfc-stable11?, mfc-stable12?

I use nightly periodic job to make an archive by means of tar(1) for a
directory with large set of subdirectories (over 2500) containing two sets =
of
files: always present RRD databases and frequently created/removed temporary
files. The process of their creation/removal never stops and presence/absen=
ce
of temporary files it not important for resulting archieve.

Recently I've found that bsdtar (used as tar for 11.2) aborts archive creat=
ion
if it finds that a file disappeared in-process. Plus, it emits strang messa=
ges
in this case:

tar: db/parxomenko/71a/.newdata: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
: tar format cannot archive socket: tar format cannot archive socket: tar
format cannot archive socket: tar format cannot archive socket

There are no sockets nor file system object types other than regular files =
or
directories in this tree.

The problem lies in the contrib/libarchive/libarchive/archive_read_disk_pos=
ix.c
file, function next_entry() that returns ARCHIVE_FAILED in case of failure =
of
tree_current_lstat() even for ENOENT case. It should tolerate ENOENT and
continue with execution as it the file in question was not seen at all or f=
ound
empty.

GNU tar responds with "File removed before we read it" message and continue=
s.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-233006-227>