GNU bug report logs -
#56025
29.0.50; em-extpipe-test-2 times out on EMBA and Cygwin
Previous Next
Reported by: Ken Brown <kbrown <at> cornell.edu>
Date: Thu, 16 Jun 2022 18:36:02 UTC
Severity: normal
Found in version 29.0.50
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #109 received at 56025 <at> debbugs.gnu.org (full text, mbox):
On 6/27/2022 2:19 PM, Ken Brown wrote:
> On 6/27/2022 3:18 PM, Jim Porter wrote:
>> I'd be very hesitant to do this, since as you mention above, this
>> seems like a timing issue, and it's entirely possible that there are
>> other, more widespread issues on Cygwin here. We'd also want to check
>> the system that the process is actually running on; otherwise,
>> remoting into a Cygwin system (via Tramp) would still exhibit the
>> problem. I'll see if I can get a Cygwin environment up to test things
>> out in the next week-ish.
>
> OK, thanks. Let me know if you need any help with that.
Ok, I've got Cygwin set up (though I'm just using the prebuilt Cygwin
Emacs for now). I can confirm that the following hangs until I send
another EOF via `C-c C-d':
echo hi | rev
However, if I evaluate the following first, the above command works just
fine:
(add-to-list 'eshell-needs-pipe "rev")
Normally, Eshell starts each process using ptys to control them.
However, the above Elisp code tells Eshell to use a pipe for "rev"[1].
I'm not totally clear on all the subtleties here, but it seems to me
that it would make more sense for rev to use a pipe for its stdin and a
pty for its stdout. That's not possible with subprocesses in Emacs
though (as far as I know).
However, I don't think this fully answers things, since I also see
inconsistent results if I run "echo hi | rev" a bunch of times.
Sometimes it prints "ih" and then I need to hit `C-c C-d` once to stop
it. Other times it doesn't print anything and I need to hit `C-c C-d'
twice. There must be some kind of race condition, maybe in Emacs's
src/process.c?
Hopefully this helps get us closer to a proper answer here though...
[1] Only when rev is being piped *to* in an Eshell pipeline.
This bug report was last modified 2 years and 350 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.