Subject: bug#45518: closed (Re: bug#45518: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 16 Mar 2021 18:31:02 +0000

Your bug report

#45518: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
45518: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=45518
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#45518: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1
From: Michael Albinus <[email-masked]>
To: Duncan Greatwood <[email-masked]>
Cc: [email-masked]
Date: Tue, 16 Mar 2021 19:30:27 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 28.1

Duncan Greatwood <[email-masked]> writes:

> Michael -

Hi Duncan,

> As you predicted, the issue does *not* show-up once
> tramp-use-ssh-controlmaster-options has been reset to nil like this.

Thanks for confirmation! I've pushed a respective patch to Tramp, as
promised it will appear with Tramp 2.5.0.3. If you are curious, you can
check it here: <https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=6c60ecd2d632ad41851e91cc53036a679c391194>.

Until Tramp 2.5.0.3 is released, you can still use the workaround
(setting tramp-use-ssh-controlmaster-options to nil), or you can apply
the patch, as you like.

> This was using the version of tramp that ships with emacs 27.1. The
> compile.el patch we discussed earlier is applied.

Thanks for the reminder: this patch isn't needed anymore.

I'm closing the bug.

> Best regards,
> Duncan.

Best regards, Michael.

Subject: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1
From: Duncan Greatwood <[email-masked]>
To: [email-masked]
Date: Mon, 28 Dec 2020 17:10:58 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Using tramp, I had a remote cpp file open in a window.

I pressed "C-c c", which invokes a function in my .emacs called
compile-hereish, which (in this case) invokes the compile command with
the remote directory containing the remote cpp.

Compilation begins as expected.

The cpp file contains a number of syntax errors. There is what I understand
to be a longstanding Tramp bug such that, if a lot of outputs (syntax
errors) are sent at high speed to the compile window, Tramp hangs.

In emacs 26.2, Ctrl-G (usually ctrl-g three times) would interrupt the hung
Tramp window, and indeed cause the errors to be displayed in the window as
best as Tramp is able.

In emacs 27.1, Ctrl-G does nothing in this "tramp-hung-while-compiling"
situation. I also tried ctrl-c ctrl-c, but that also does nothing. It
appears that the only way to kill the hung Tramp compile is to force-quit
emacs as a whole at the OS level.

Machine running emacs: MacBook Pro (2015), macos Big Sur v11.1. I am using
emacs 27.1 installed via brew-cask on macos.
On the Macbook: ssh -V
    OpenSSH_8.1p1, LibreSSL 2.7.3

Remote host for compile: Ubuntu Linux 20.04.1 LTS (GNU/Linux
5.4.0-54-generic x86_64)
On remote host: ssh -V
  OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020
Also on remote host: gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If I revert back to emacs 26.2 on the Macbook, ctrl-G once again works as
expected in the event of a Tramp hang.

I am attaching to the remote host using Tramp-ssh mode, but I also tried
Tramp-scp and saw the same behaviour. My .emacs includes:
(setq tramp-default-method "ssh")
(setq tramp-chunksize 500)

The following cpp file (on Ubuntu machine) is sufficient to generate a
large number of syntax errors and hang Tramp, blocking ctrl-G (crashing
emacs) in emacs 27.1 for me.
// test.cpp
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
  DummyClass(
int validstuff();
int validstuff()
{
    return(0);
}
// end test.cpp

Thanks as always.
D.

Following was generated via: M-x report-emacs-bug

In GNU Emacs 27.1 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60
Version 10.14.6 (Build 18G95))
 of 2020-08-11 built on builder10-14.porkrind.org
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.1

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Package cl is deprecated
Mark set

Configured using:
 'configure --with-ns '--enable-locallisppath=/Library/Application
 Support/Emacs/${version}/site-lisp:/Library/Application
 Support/Emacs/site-lisp' --with-modules'

Configured features:
NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES
THREADS JSON PDUMPER

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-auto-complete-mode: t
  show-paren-mode: t
  delete-selection-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/dgreatwood/.emacs.d/lisp/linum hides
/Applications/Emacs.app/Contents/Resources/lisp/linum

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search seq
byte-opt bytecomp byte-compile cconv mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils linum easy-mmode
time-date subr-x server persistent-todo special-scratch tango-theme
advice undo-tree diff auto-complete-config auto-complete popup
string-inflection paren desktop frameset unbound cl-macs cl gv delsel
edmacro kmacro cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads kqueue cocoa ns
multi-tty make-network-process emacs)

Memory information:
((conses 16 70462 8546)
 (symbols 48 8556 1)
 (strings 32 22334 1877)
 (string-bytes 1 713421)
 (vectors 16 12259)
 (vector-slots 8 156248 17226)
 (floats 8 39 36)
 (intervals 56 248 0)
 (buffers 1000 14))