Your message dated Sat, 20 Jun 2009 09:49:28 -0600
with message-id <1245512968.9844.20.ca...@rover>
has caused the report #533356,
regarding tar: broken behaviour with input/output pipe and compression
to be marked as having been forwarded to the upstream software
author(s) [email protected]
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
533356: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=533356
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Please see the attached proposed patch from Petr Salinger. Looks
reasonable to me... your thoughts?
Bdale
--- Begin Message ---
Package: tar
Severity: important
Version: 1.22-1
Tags: patch
User: [email protected]
Usertags: kfreebsd
Hi,
the current version of tar breaks build of gcj-4.4 on GNU/kFreeBSD.
https://buildd.debian.org/fetch.cgi?&pkg=gcj-4.4&ver=4.4.0-6j1&arch=kfreebsd-amd64&stamp=1245000137&file=log:
uudecode -o - java-classes.tgz.uue | tar -C src -xvz
libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
sbuild received SIGPIPE -- shutting down
It looks like related to #525437, #532570, #525818.
The problem appears when a grandchild tar is used.
In the "child_pid", the child_pid is zero, the kill() signals
every process in the process group of the calling process
instead of themselves.
Please apply patch bellow, it would also be nice
if you can inform upstream about this issue.
Thanks in advance
Petr
--- src/system.c~ 2009-03-29 05:23:17.000000000 +0200
+++ src/system.c 2009-06-16 21:11:20.000000000 +0200
@@ -435,7 +435,7 @@
if (WIFSIGNALED (wait_status))
{
- kill (child_pid, WTERMSIG (wait_status));
+ kill (getpid(), WTERMSIG (wait_status));
exit_status = TAREXIT_FAILURE;
}
else if (WEXITSTATUS (wait_status) != 0)
@@ -573,7 +573,7 @@
if (WIFSIGNALED (wait_status))
{
- kill (child_pid, WTERMSIG (wait_status));
+ kill (getpid(), WTERMSIG (wait_status));
exit_status = TAREXIT_FAILURE;
}
else if (WEXITSTATUS (wait_status) != 0)
--- End Message ---
--- End Message ---