diff options
author | Michael Albinus <michael.albinus@gmx.de> | 2016-08-15 12:29:20 +0200 |
---|---|---|
committer | Michael Albinus <michael.albinus@gmx.de> | 2016-08-15 12:29:20 +0200 |
commit | 9c2ce57719d0db8ac0a01b65d7e8d7ccc3f2d6ca (patch) | |
tree | 25e5622f56d6e416a0ca0c73096e7407bd831bcc /lisp/net/tramp-cache.el | |
parent | 9c2ea5cdd626f011cb535824223e49e5bdb20146 (diff) | |
download | emacs-9c2ce57719d0db8ac0a01b65d7e8d7ccc3f2d6ca.tar.gz |
Fix stale cache problem in Tramp
* lisp/net/tramp-cache.el (tramp-get-connection-property):
Check, that a process as key is still running. (Bug#22478)
Diffstat (limited to 'lisp/net/tramp-cache.el')
-rw-r--r-- | lisp/net/tramp-cache.el | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el index 07176be6e4e..76b49a09e3a 100644 --- a/lisp/net/tramp-cache.el +++ b/lisp/net/tramp-cache.el @@ -237,9 +237,14 @@ connection, returns DEFAULT." (aset key 3 nil) (aset key 4 nil)) (let* ((hash (tramp-get-hash-table key)) - (value (if (hash-table-p hash) - (gethash property hash default) - default))) + (value + ;; If the key is an auxiliary process object, check whether + ;; the process is still alive. + (if (and (processp key) (not (memq (process-status key) '(run open)))) + default + (if (hash-table-p hash) + (gethash property hash default) + default)))) (tramp-message key 7 "%s %s" property value) value)) |