GNU bug report logs -
#43226
28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote
Previous Next
Full log
View this message in rfc822 format
> From: Henrik Ahlgren <pablo <at> seestieto.com>
> Cc: Michael Albinus <michael.albinus <at> gmx.de>, 43226 <at> debbugs.gnu.org
> Date: Wed, 26 Oct 2022 14:34:09 +0300
>
> This issue is documented on the FAQ section of the Magit manual:
>
> A.2.13 I am unable to stage when using Tramp from MS Windows
> ------------------------------------------------------------
>
> Magit may be unable to stage (or otherwise apply) individual hunks when
> you are connected to remote machine using Tramp and the local machine
> uses MS Windows.
>
> There appears to be a problem with ‘process-send-eof’ in this
> scenario, as mentioned at the end of ‘tramp-tests.el’. I have contacted
> the Tramp maintainer about this. For now this unfortunately means that
> it just doesn’t work and we cannot do anything about it. If you have
> more information, then please comment on
> <https://github.com/magit/magit/issues/3624>.
This doesn't really add any useful information.
> After some debugging I figured out that by simply adding
> (process-send-string process "\004") in magic-process.el before (maybe
> even instead?) of process-send-eof, it works perfectly well. Maybe it's
> a valid workaround, or even the proper fix, but clearly there is some
> point of having a separate function for sending EOF.
>
> In the C implementation of process-send-eof (Emacs 27.1), it seems to only
> send EOF if the process has pty_flag set:
>
> if (XPROCESS (proc)->pty_flag)
> send_process (proc, "\004", 1, Qnil);
>
> I think this could be the reason: after all I believe PTYs are a fairly
> recent feature in Windows and Emacs does not support it yet?
Emacs doesn't (and probably will not) support the Windows
Pseudo-Console because it falls short of what Emacs needs: it doesn't
allow to send stuff in arbitrary encoding via this channel. I filed a
bug report with the developers many moons ago, but their response was
that it will probably never fixed. So you can only talk to a program
that uses the current system codepage, which is useless for Emacs.
So the ->pty_flag case is not for Windows. And even if we did try
using it, it wouldn't have worked for local processes, because Ctrl-D
is NOT the EOF character on Windows; it's Ctrl-Z, and then only if the
sub-process does text-mode reads (in binary mode, there's no way to
send EOF to a subprocess, only kill it).
This bug report was last modified 2 years and 235 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.