[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug#17981: [PATCH] maint.mk: less syntax-check noise when SIGPIPE is

From: Paul Eggert
Subject: Re: bug#17981: [PATCH] maint.mk: less syntax-check noise when SIGPIPE is ignored
Date: Fri, 11 Jul 2014 13:58:24 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

On 07/08/2014 12:42 PM, Eric Blake wrote:
It is unclear
at this point whether POSIX would recommend that filter
applications should_always_  exit with 0 status on pipe failure,
or only do this for EPIPE write failures when SIGPIPE is ignored,
or whether it should be optional behavior that must be explicitly
enabled via a command-line option and/or system-wide environment

None of these options sound appealing, I'm afraid. The first two would be an incompatible change to longstanding standard behavior. A system-wide environment variable would be problematic for all the usual reaosns. A command-line option would be a pain to use (what? I have to modify all my shell scripts?).

Instead, how about this idea? Change the behavior of the shell so that SIGPIPE is not ignored in a pipeline (except in the pipeline's last member of course), even if it is ignored in the parent. This is also a change to POSIX, but it's a relatively minor one. Or, if we want to be conservative about it, we could make the new behavior depend on a new shell option. Either way, this would solve the problem without having to change grep, sed, etc.

We might also want to have a way to reenable traps in the shell when they're disabled; that's been a longstanding problem even aside from this SIGPIPE business.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]