Subject: 27.0.50; shell-mode over TRAMP can no longer kill processes with C-c C-c

From: Dima Kogan <[email-masked]>
Date: Thu, 09 May 2019 19:04:37 -0700

Hi. This is a semi-recent regression. I've been observing it for a few
months now, but have only now tried to track it down. I'm currently
using a very recent build of emacs from git:

  http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=7dafbe3ab91

Recipe:

1. C-x C-f /ssh:someserver:
   Opens up a TRAMP ssh connection to some server. This opens up the ~
   in dired mode

2. M-x shell
   Opens up a remote shell.

3. sleep 10000
   I.e. make the remote box do something that doesn't quit immediately

4. C-c C-c
   This SHOULD send SIGINT to the process to kill it. And it did that
   previously, but it doesn't do that anymore. Now it just hangs

I just did a bit of debugging. C-c C-c invokes
(tramp-interrupt-process). This calls (tramp-send-command) to send a
"kill -2 PID" and then (tramp-accept-process-output) to wait for a new
shell prompt; I think. For whatever reason, the server is not getting
the "kill -2 PID" anymore, so the waiting for the prompt now hangs
forever. I'll poke at it some more, but it's likely somebody more
knowledgeable will be able to figure this out much faster than me.

Thanks!