bug-gnu-emacs
[Top][All Lists]
Advanced

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

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


From: Jim Porter
Subject: bug#66186: "make lisp/eshell/esh-proc-tests" fails intermittently since 7e50861ca7ed3f620fe62ac6572f6e88b3600ece
Date: Mon, 25 Sep 2023 12:12:23 -0700

On 9/24/2023 11:47 PM, Eli Zaretskii wrote:
Date: Sun, 24 Sep 2023 22:47:58 -0700
From: Jim Porter <jporterbugs@gmail.com>
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?

Attachment: 0001-Adjust-Eshell-regression-tests-to-avoid-SIGPIPE.patch
Description: Text document


reply via email to

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