URL: <https://savannah.gnu.org/bugs/?63307>
Summary: make 4.4 passes ignored SIGPIPE on to children Project: make Submitter: None Submitted: Wed 02 Nov 2022 03:12:02 PM UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 4.4 Operating System: POSIX-Based Fixed Release: None Triage Status: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Wed 02 Nov 2022 03:12:02 PM UTC By: Anonymous Test case: $ cat Makefile all: (sleep 1; echo foo; echo bar >&2) | : $ make-4.3 (sleep 1; echo foo; echo bar >&2) | : $ make-4.4 (sleep 1; echo foo; echo bar >&2) | : /bin/sh: 1: echo: Broken pipe bar $ I asked in #63248 whether this was intentional. It was not, so here is a bug for it. What happens in make 4.3 is the sleep makes it so that the "echo foo" is extremely unlikely to start until the : has already terminated. Then, when "echo foo" attempts to write, the whole shell process receives SIGPIPE. What happens in make 4.4 is that the shell process does not receive SIGPIPE and continues processing. This causes SuSE bug 33947 (https://lists.gnu.org/archive/html/bug-diffutils/2019-01/msg00000.html, diffutils testsuite failure when SIGPIPE is ignored) to appear in environments where it previously did not, after upgrading to make 4.4. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?63307> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/