SIGEPIPE after update to 8.1-RC2
Jilles Tjoelker
jilles at stack.nl
Sat Jul 17 22:11:52 UTC 2010
On Sat, Jul 17, 2010 at 06:24:55PM +0300, Alex Kozlov wrote:
> After updating my buildbox from 26 April 8-STABLE
> to 8.1-RC2 I constantly getting SIGEPIPE
> portsnap:
> Fetching 4 metadata patches... done.
> Applying metadata patches... done.
> Fetching 0 metadata files... done.
> Fetching 27 patches.....10....20... done.
> Applying patches... done.
> Fetching 3 new ports or files... done.
> sort: write failed: standard output: Broken pipe
> sort: write error
> Removing old files and directories... done.
> sudo make -C /usr/ports/converters/ascii2binary:
> ===> Patching for ascii2binary-2.13_2
> ===> Applying FreeBSD patches for ascii2binary-2.13_2
> ===> ascii2binary-2.13_2 depends on shared library: intlgrep: writing output: Broken pipe
> grep: writing output: Broken pipe
[snip repetition]
> - found
> ===> Configuring for ascii2binary-2.13_2
> Does anyone know something about this issue?
This looks more like the absence of SIGPIPE than an inappropriate
SIGPIPE. I can reproduce both of those error messages by running the
commands with SIGPIPE ignored. grep(1) seems to behave strangely on
write errors, not aborting, for example
yes | { trap '' PIPE; grep -v foo; echo $? >&2; } | :
prints an endless stream of error messages.
Note that sh(1) silently ignores attempts to change the disposition of
signals that were ignored on entry to the shell, so a
trap - PIPE
is unlikely to help you.
Similarly, SIGPIPE may be blocked (masked). Few programs expect this.
The -i and -j options in procstat should be helpful in finding what
exactly is wrong with SIGPIPE. (These options are relatively new, but
should be in 8.1.)
--
Jilles Tjoelker
More information about the freebsd-stable
mailing list