Subject: bug#10187: closed (Re: bug#10187: Tramp freezes up if you interrupt sudo's prompt)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 03 Dec 2011 04:01:02 +0000

Your bug report

#10187: Tramp freezes up if you interrupt sudo's prompt

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].

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

Subject: Re: bug#10187: Tramp freezes up if you interrupt sudo's prompt
From: Stefan Monnier <[email-masked]>
To: Michael Albinus <[email-masked]>
Cc: [email-masked]
Date: Fri, 02 Dec 2011 23:00:13 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

>> % emacs -Q
>> C-x C-f /sudo::./ TAB
>> at the prompt hit C-g
>> this freezes Emacs (C-g doesn't help any further).
> I've committed a patch which should fix it.  Could you, please, check?

Thanks, it seems to work now,

        Stefan

Subject: Tramp freezes up if you interrupt sudo's prompt
From: Stefan Monnier <[email-masked]>
To: [email-masked]
Date: Thu, 01 Dec 2011 14:52:26 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: Emacs
Version: 24.0.91

   % emacs -Q
   C-x C-f /sudo::./ TAB
   at the prompt hit C-g

this freezes Emacs (C-g doesn't help any further).
If I send the SIGUSR2 to wake it up, I get the appended backtrace.

        Stefan

Debugger entered--Lisp error: (quit)
  accept-process-output(#<process *tramp/sudo root@ceviche*> 1 nil)
  byte-code(<BYTECODE> [timeout -with-timeout-timer- with-timeout-timers proc timeout-msecs run-with-timer 1 nil #[nil "\300\301\211\"\207" [throw timeout] 3] ((cancel-timer -with-timeout-timer-)) accept-process-output] 5)
  tramp-accept-process-output(#<process *tramp/sudo root@ceviche*> 1)
  tramp-wait-for-regexp(#<process *tramp/sudo root@ceviche*> nil "\\(^\\|\\)[^#$\n]*///5fe2bbf32410c0285dcbdf73105d3075#\\$?$")
  tramp-wait-for-output(#<process *tramp/sudo root@ceviche*>)
  tramp-send-command(["sudo" "root" "ceviche" "./"] "cd ~root; pwd")
  tramp-sh-handle-expand-file-name("/sudo::./" nil)
  apply(tramp-sh-handle-expand-file-name ("/sudo::./" nil))
  tramp-sh-file-name-handler(expand-file-name "/sudo::./" nil)
  apply(tramp-sh-file-name-handler expand-file-name ("/sudo::./" nil))
  byte-code(<BYTECODE> [foreign sf d default-directory x operation autoload boundp temporary-file-directory fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" load noerror nomessage apply args] 5)
  tramp-file-name-handler(expand-file-name "/sudo::./" nil)
  expand-file-name("/sudo::./")
  tramp-handle-file-remote-p("/sudo::./" nil nil)
  apply(tramp-handle-file-remote-p ("/sudo::./" nil nil))
  tramp-sh-file-name-handler(file-remote-p "/sudo::./" nil nil)
  apply(tramp-sh-file-name-handler file-remote-p ("/sudo::./" nil nil))
  byte-code(<BYTECODE> [foreign sf d default-directory x operation autoload boundp temporary-file-directory fboundp temp-directory subrp functionp getenv "TEMP" file-directory-p file-name-as-directory "TMP" "TMPDIR" file-exists-p "c:/temp" message "Neither `temporary-file-directory' nor `temp-directory' is defined -- using /tmp." "/tmp" load noerror nomessage apply args] 5)
  tramp-file-name-handler(file-remote-p "/sudo::./" nil nil)
  file-remote-p("/sudo::./")
  byte-code(<BYTECODE> [end tramp-rfn-eshadow-update-overlay-regexp tramp-rfn-eshadow-overlay file-name-handler-alist rfn-eshadow-update-overlay-hook rfn-eshadow-overlay subrp overlay-end functionp minibuffer-prompt-end file-remote-p buffer-substring-no-properties string-match buffer-string nil move-overlay rfn-eshadow-update-overlay] 4)
  tramp-rfn-eshadow-update-overlay()
  run-hooks(rfn-eshadow-update-overlay-hook)
  byte-code(<BYTECODE> [rfn-eshadow-overlay non-essential end start mid goal substitute-in-file-name minibuffer-contents overlay-end minibuffer-prompt-end t nil (byte-code "\301\302d\"!\207" [pos substitute-in-file-name buffer-substring-no-properties] 4) ((error)) 2 move-overlay run-hooks rfn-eshadow-update-overlay-hook pos] 6)
  rfn-eshadow-update-overlay()
  read-from-minibuffer("Find file: " "~/src/emacs/trunk/" (keymap (keymap (32)) keymap (10 . minibuffer-complete-and-exit) (13 . minibuffer-complete-and-exit) keymap (menu-bar keymap (minibuf "Minibuf" keymap (tab menu-item "Complete" minibuffer-complete :help "Complete as far as possible") (space menu-item "Complete Word" minibuffer-complete-word :help "Complete at most one word") (63 menu-item "List Completions" minibuffer-completion-help :help "Display all possible completions") "Minibuf")) (27 keymap (118 . switch-to-completions)) (prior . switch-to-completions) (63 . minibuffer-completion-help) (32 . minibuffer-complete-word) (9 . minibuffer-complete) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence "" :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-minibuffer) (7 . abort-recursive-edit) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (up . previous-history-element) (prior . previous-history-element) (down . next-history-element) (next . next-history-element) (27 keymap (114 . previous-matching-history-element) (115 . next-matching-history-element) (112 . previous-history-element) (110 . next-history-element))) nil file-name-history "~/src/emacs/trunk/" nil)
  completing-read-default("Find file: " read-file-name-internal file-exists-p confirm-after-completion "~/src/emacs/trunk/" file-name-history "~/src/emacs/trunk/" nil)
  completing-read("Find file: " read-file-name-internal file-exists-p confirm-after-completion "~/src/emacs/trunk/" file-name-history "~/src/emacs/trunk/")
  read-file-name-default("Find file: " nil "~/src/emacs/trunk/" confirm-after-completion nil nil)
  read-file-name("Find file: " nil "~/src/emacs/trunk/" confirm-after-completion)
  find-file-read-args("Find file: " confirm-after-completion)
  byte-code("\300\301\302 \"\207" [find-file-read-args "Find file: " confirm-nonexistent-file-or-buffer] 3)
  call-interactively(find-file nil nil)

        Stefan