On 9/24/2023 11:47 PM, Eli Zaretskii wrote: >> Date: Sun, 24 Sep 2023 22:47:58 -0700 >> From: Jim Porter >> Cc: jschmidt4gnu@vodafonemail.de, 66186@debbugs.gnu.org >> >> I forgot to add: Is there potential for a race condition here? I think >> I'd written it the other way because there's a chance that the process >> exits in between checking 'process-live-p' and calling >> 'process-send-string'. > > Yes, and therefore I think you should also keep the old code that > wrapped the call in condition-case. Ok, so I've rewritten the patch. Now there are no non-test code changes, so Eshell works as it did before, for better or worse. Jumping through hoops to reduce, but not eliminate, the chance of a crash didn't seem like the right direction to me. However, I also added a comment in 'eshell-output-object-to-target' pointing to this bug, in case anyone finds this SIGPIPE behavior to be an actual problem (it might be an issue for people who want to write shell scripts in Eshell, but I don't think that's very common anyway). And then... >> I could probably also write the test to avoid this race condition >> entirely, since it's not actually trying to trigger a SIGPIPE (though in >> general, Eshell should do the right thing in response to SIGPIPE). That >> would make the regression tests happy. > > That's always a good thing, thanks. ... I've also done this. Now the regression tests should just avoid the possibility of a SIGPIPE, which will hopefully resolve this bug. Jens, could you try this version out to make sure the tests pass reliably for you?