[Bug 213092] tar(1) continues to run and error after non-existent file
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Sep 29 16:05:35 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213092
Bug ID: 213092
Summary: tar(1) continues to run and error after non-existent
file
Product: Base System
Version: CURRENT
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: freebsd-bugs at FreeBSD.org
Reporter: sega01 at go-beyond.org
CC: freebsd-amd64 at FreeBSD.org
CC: freebsd-amd64 at FreeBSD.org
I suspect this fix is what caused the behavior:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205358
Prior, I was using the broken functionality as a feature:
tar -cf - file file file-may-be-here file file, and it was fine up till 10.3.
Now in 11.0-RELEASE, it breaks. But it's ugly.
# ls
foo that this
# tar cvf - 404 > /dev/null
tar: 404: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
# echo $?
1
That's all fine and dandy. I think it could be reasonable behavior. What I
don't like is this.
# tar cvf - foo that this 404 that this 404 that this > /dev/null
a foo
a foo/bar
a that
a this
tar: 404: Cannot stat: No such file or directory
tar: INTERNAL ERROR: Function 'archive_read_disk_open' invoked with archive
structure in state 'header', should be in state 'new/closed': Unknown error: -1
tar: INTERNAL ERROR: Function 'archive_read_disk_open' invoked with archive
structure in state 'header', should be in state 'new/closed': Unknown error: -1
tar: INTERNAL ERROR: Function 'archive_read_disk_open' invoked with archive
structure in state 'header', should be in state 'new/closed': Unknown error: -1
tar: INTERNAL ERROR: Function 'archive_read_disk_open' invoked with archive
structure in state 'header', should be in state 'new/closed': Unknown error: -1
tar: INTERNAL ERROR: Function 'archive_read_disk_open' invoked with archive
structure in state 'header', should be in state 'new/closed': Unknown error: -1
tar: Error exit delayed from previous errors.
# echo $?
1
It at least returns 1, but it doesn't stop execution. It seems to get into a
pretty yucky state. I think maybe tar isn't handling the return from libarchive
properly? I think tar should quit immediately on a failure like this, rather
than spinning its wheels in a weird state.
In order to see the libarchive error, you have to give tar at least one more
file argument after a file that doesn't exist.
Thank you!
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-amd64
mailing list