Subject: bug#43226: 28.0.50; Running Tramp tests on MS-Windows leaves zombie processes on the remote

From: Eli Zaretskii <[email-masked]>
Date: Sun, 06 Sep 2020 19:07:50 +0300

> From: Michael Albinus <[email-masked]>
> Cc: [email-masked]
> Date: Sun, 06 Sep 2020 17:54:51 +0200
> 
> > Just to be sure I test this correctly: after installing the change and
> > compiling tramp-cmds.el, I run the test tramp-test30-make-process
> > twice.  What I see after the first run is that 2 'cat' processes (each
> > one with 2 sshd) and one /bin/sh process (with 2 sshd processes of its
> > own) are left behind.  After the second run, I see 4 'cat' processes
> > (each one with 2 sshd) and the same single /bin/sh process with its 2
> > sshd processes.  Thus my conclusion is that sending EOF to the
> > processes doesn't help.
> 
> Yes, this is right. I have no idea how else we could kill the remote
> processes, prior killing the local plink.

I think at this point we need some expert on TCP connections to chime
in.  AFAIU, your hypothesis is that the way we kill network processes
on MS-Windows somehow fails to send SIGHUP to the other end of the
connection?  I'm not sure how this could happen, since I think Windows
sockets are a more-or-less faithful emulation of sockets.

Or maybe you (or someone else) could describe in detail how the
deletion of the network-connection process is supposed to shut down
the processes on the other end of the connection?