On Thu, May 07, 2009 at 08:41:21PM +0200, Alexey Shuvaev wrote:
On Thu, May 07, 2009 at 10:51:50AM -0700, Tim Kientzle wrote:
I finally reproduced this; it seems to only happen with
/bin/csh. It does not happen with /bin/sh or bash.
Also, in /bin/csh, this works:
(gunzip -c ooo_crystal_images-1.tar.gz | tar xf -) && echo OK
and this fails:
gunzip -c ooo_crystal_images-1.tar.gz | (tar xf -) && echo OK
Do you mean it is a bug in [t]csh?
No, this is definitely a bug in tar. I finally
found the place where tar was not always reading
beyond end-of-archive on a pipe.
This doesn't show up under /bin/sh or bash
because for those shells, the return status
of "gunzip|tar" is the exit status of the last
command ("tar"). For csh, the return
status of the pipeline is the return status
of the first command.
So for other shells, the SIGPIPE exit from
gunzip doesn't cause the whole sequence to fail
(because "tar" exits with success).
I'm testing a fix now; it will be committed