Subject: Re: bug#66186: "make lisp/eshell/esh-proc-tests" fails intermittently since 7e50861ca7ed3f620fe62ac6572f6e88b3600ece

From: Paul Eggert <[email-masked]>
Date: Mon, 25 Sep 2023 00:18:02 -0700

On 2023-09-24 23:47, Eli Zaretskii wrote:
> Perhaps process-send-string should install a temporary SIGPIPE
> handler, at least optionally?  Paul, WDYT?

Sounds like a recipe for bad race conditions.

I'm not following the problem closely. However, the usual way to handle 
this is to use sendto's MSG_NOSIGNAL option (GNU/Linux) or use 
setsockopt with SO_NOSIGPIPE (the BSDs and macOS). This should prevent 
those SIGPIPEs from occurring.

Alternatively, but this would be a bigger lift, you can arrange for a 
SIGPIPE signal handler to be enabled all the time, even in batch mode. 
But then you'll need to resurrect the batch-mode code that used to deal 
with this sort of thing (and I've forgotten what it is and as I vaguely 
recall it was a bit buggy but you can look at the change history). The 
basic idea is that in batch mode, if you ignore SIGPIPE then Emacs 
should always check for write errors and exit whenever they happen.