[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie proc
From: |
Eli Zaretskii |
Subject: |
bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote |
Date: |
Wed, 26 Oct 2022 15:01:12 +0300 |
> From: Henrik Ahlgren <pablo@seestieto.com>
> Cc: Michael Albinus <michael.albinus@gmx.de>, 43226@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).
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Henrik Ahlgren, 2022/10/25
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Eli Zaretskii, 2022/10/25
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Henrik Ahlgren, 2022/10/25
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Michael Albinus, 2022/10/25
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Eli Zaretskii, 2022/10/25
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Henrik Ahlgren, 2022/10/26
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote,
Eli Zaretskii <=
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, HA, 2022/10/26
- bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote, Michael Albinus, 2022/10/29