[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20246: 25.0.50; Tramp does not show correct error message when ssh r
From: |
Michael Albinus |
Subject: |
bug#20246: 25.0.50; Tramp does not show correct error message when ssh refuses to connect to host due to changed host key |
Date: |
Fri, 10 Apr 2015 16:38:18 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Filipp Gunbin <fgunbin@fastmail.fm> writes:
Hi Filipp,
> That's what I can reproduce now:
>
> - change host identity in ~/.ssh/known-host
> - M-x tramp-cleanup-all-connections
> - C-x 4 r /ssh:user@host:/file
>
> Now, Tramp shows correct error message from ssh.
OK.
> - now, quit it with C-]
> - again C-x 4 r (as above)
>
> Now Tramp shows in the echo area: "/ssh:user@host:/file does not exist"
>
> This is the behavior which takes place if the above steps are done
> rather quickly.
"rather quickly" means within 10 seconds. This is the default value of
`remote-file-name-inhibit-cache', the time Tramp keeps its cache for a
given file.
> If I take a pause before retrying to visit a file, ssh error message is
> shown correctly.
OK.
> Maybe this is not the same problem I had originally, but that's what
> I'm able to reproduce right now.
Could you, please, apply the following patch:
--8<---------------cut here---------------start------------->8---
*** /home/albinus/src/tramp/lisp/tramp.el.~master~ 2015-04-10
16:34:06.421074752 +0200
--- /home/albinus/src/tramp/lisp/tramp.el 2015-04-10 16:29:29.236143227
+0200
***************
*** 3558,3563 ****
--- 3558,3565 ----
(tramp-message vec 6 "\n%s" (buffer-string)))
(unless (eq exit 'ok)
(tramp-clear-passwd vec)
+ (tramp-flush-directory-property vec "")
+ (tramp-flush-connection-property proc)
(delete-process proc)
(tramp-error-with-buffer
(tramp-get-connection-buffer vec) vec 'file-error
--8<---------------cut here---------------end--------------->8---
This changes the behaviour that Tramp doesn't keep its cache anymore,
when there is an error during connection. Tramp reports that the
file/directory doesn't exist, and Emacs falls back to its default
behaviour, offering you a new empty buffer. This sounds consistent.
> Filipp
Best regards, Michael.