[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#66186: "make lisp/eshell/esh-proc-tests" fails intermittently since
From: |
Eli Zaretskii |
Subject: |
bug#66186: "make lisp/eshell/esh-proc-tests" fails intermittently since 7e50861ca7ed3f620fe62ac6572f6e88b3600ece |
Date: |
Mon, 25 Sep 2023 10:43:00 +0300 |
> Date: Mon, 25 Sep 2023 00:18:02 -0700
> Cc: jschmidt4gnu@vodafonemail.de, 66186@debbugs.gnu.org
> From: Paul Eggert <eggert@cs.ucla.edu>
>
> 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.
I don't think this is about a network subprocess. It's about a real
subprocess which runs programs.
> 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.
Hmm...