unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
@ 2022-09-04  7:02 Thierry Volpiatto
  2022-09-04 11:12 ` Lars Ingebrigtsen
  2022-09-10 11:31 ` Michael Albinus
  0 siblings, 2 replies; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-04  7:02 UTC (permalink / raw)
  To: 57572


Hello,

with helm-find-files connecting to "/sudo::" I have this error:

    (file-error "File `' must be absolute")

This because helm connect to tramp as soon the last ":" is entered.
The error can be fixed with this patch modifying
`tramp-file-name-unify`:

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index bb6eeaa7417..171d67b42af 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1495,7 +1495,7 @@ same connection.  Make a copy in order to avoid side effects."
 	  (and (stringp localname)
 	       ;; FIXME: This is a sanity check.  When this error
 	       ;; doesn't happen for a while, it can be removed.
-	       (or (file-name-absolute-p localname)
+	       (or (file-name-absolute-p (expand-file-name localname))
 		   (tramp-error
 		    vec 'file-error "File `%s' must be absolute" localname))
 	       (tramp-compat-file-name-unquote (directory-file-name localname)))

It would be great that tramp development takes in account that there is
nowaday many alternatives to find-file/dired that are incremental and
connect automatically as soon as user type.  Most errors come from this
and have to be fixed more and more frequently as soon there is changes
in tramp code.

Thanks.

Here the backtrace:


Debugger entered--Lisp error: (file-error "File `' must be absolute")
  signal(file-error ("File `' must be absolute"))
  tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute" "")
  tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "")
  tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef)
  tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:")
  apply(tramp-sh-handle-file-readable-p "/sudo:root@IPad-S340:")
  tramp-sh-file-name-handler(file-readable-p "/sudo:root@IPad-S340:")
  apply(tramp-sh-file-name-handler file-readable-p "/sudo:root@IPad-S340:")
  tramp-file-name-handler(file-readable-p "/sudo:root@IPad-S340:")
  file-readable-p("/sudo:root@IPad-S340:")
  tramp-handle-file-accessible-directory-p("/sudo:root@IPad-S340:")
  apply(tramp-handle-file-accessible-directory-p "/sudo:root@IPad-S340:")
  tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:")
  apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root@IPad-S340:")
  tramp-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:")
  file-accessible-directory-p(#("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t)))
  (let* ((path (helm-ff-set-pattern helm-pattern)) (dir-p (file-accessible-directory-p path)) basedir invalid-basedir non-essential (tramp-verbose helm-tramp-verbose)) (setq helm--ignore-errors (file-remote-p path)) (set-text-properties 0 (length path) nil path) (if (or (string= path "@@TRAMP@@") (string= path "") (and (string-match-p ":\\'" path) (helm-ff--tramp-postfixed-p path)) (let ((it (file-name-directory path))) (if it (file-directory-p it)))) nil (setq invalid-basedir t)) (if (or (string= path "@@TRAMP@@") invalid-basedir) nil (setq helm-ff-auto-update-flag (if (or (null helm-ff--auto-update-state) helm-ff--deleting-char-backward (and dir-p (not (string-match-p "/\\'" path)))) nil (or (>= (length (helm-basename path)) 3) dir-p))) (helm-log "Pattern=%S" (setq helm-pattern (if (string-match helm-ff-tramp-method-regexp path) helm-pattern (helm-ff--transform-pattern-for-completion path)))) (setq basedir (or (let ((it (if ... ... ...))) (if it (expand-file-name it))) default-directory)) (setq helm-ff-default-directory (if (string= helm-pattern "") (expand-file-name "/") (if (or (string-match helm-ff-url-regexp path) (and helm--url-regexp (string-match helm--url-regexp path))) nil basedir)))) (if (and (string-match ":\\'" path) (file-remote-p basedir nil t)) (progn (setq helm-pattern basedir))) (cond ((string-match helm-ff-tramp-method-regexp path) (mapcar #'(lambda (method) (helm-ff-filter-candidate-one-by-one (concat "/" ":" method))) (helm-ff--get-tramp-methods))) ((string= path "@@TRAMP@@") (helm-ff--tramp-hostnames)) ((or (and (file-regular-p path) (eq last-repeatable-command 'helm-execute-persistent-action)) (string-match helm-ff-url-regexp path) invalid-basedir (and (not (file-exists-p path)) (string-match "/$" path)) (and helm--url-regexp (string-match helm--url-regexp path))) (list (helm-ff-filter-candidate-one-by-one path nil t))) ((string= path "") (helm-ff-directory-files "/")) ((and (file-directory-p path) (not (file-readable-p path))) (list (cons (format "@@@@file-error: Opening directory permission denie..." path) path))) ((and dir-p helm-ff-auto-update-flag) (helm-ff-directory-files path)) (t (append (if (or (eq require-match t) (file-exists-p path) dir-p) nil (list (helm-ff-filter-candidate-one-by-one path nil t))) (helm-ff-directory-files basedir)))))
  helm-find-files-get-candidates()
  apply(helm-find-files-get-candidates nil)
  helm-apply-functions-from-source(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...) helm-find-files-get-candidates)
  helm-interpret-value(helm-find-files-get-candidates ((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-get-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-get-cached-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-compute-matches(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm--collect-matches((((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) (13 . helm-ff-RET) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1dc018d1d86e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1dc018d1e85e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1dc018d1e94e80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1dc018d1dfbe80>)) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit2 or (...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:Help \\[h...") (header-line . #("C-j: Hit1 Expand Candidate, Hit2..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) (group . helm-files) (migemo . t))))
  helm-update()
  helm-check-new-input("/sudo::")
  helm-check-minibuffer-input()
  #f(compiled-function () #<bytecode 0x122c2674354551d8>)()
  apply(#f(compiled-function () #<bytecode 0x122c2674354551d8>) nil)
  timer-event-handler([t 0 0 10000 repeat #f(compiled-function () #<bytecode 0x122c2674354551d8>) nil idle 0 nil])
  read-from-minibuffer(#("Find files or url: " 0 19 (face helm-minibuffer-prompt)) "/home/thierry/labo/github/helm/" (keymap (f12 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1d86e80>)) (f11 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1e85e80>)) (f10 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1e94e80>)) (f9 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1dfbe80>)) (f8 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1deae80>)) (f7 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1d29e80>)) (f6 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1d38e80>)) (f5 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1dbfe80>)) (f4 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1daee80>)) (f3 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1dcde80>)) (f2 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1ddce80>)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1cc3e80>)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa595fcd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa595edd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa599eed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa599ffd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59900d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59911d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59972d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59963d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59944d75>)) (110 . helm-helm-run-cycle-resume-with-subkeys) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-insert-or-copy) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be57cd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be56dd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be66ed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be67fd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be680d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be691d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be6f2d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be6e3d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be6c4d75>)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-scroll-down) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-scroll-up)) (next . helm-next-page) (prior . helm-previous-page) (C-up . helm-follow-action-backward) (C-down . helm-follow-action-forward) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) ...) nil nil nil t)
  helm-read-from-minibuffer("Find files or url: " "/home/thierry/labo/github/helm/" "^[[:multibyte:] ]*helm-files\\.el$" nil nil nil nil)
  helm-internal(helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil)
  apply(helm-internal (helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil))
  helm(helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil)
  apply(helm (helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil))
  helm(:sources helm-source-find-files :input "/home/thierry/labo/github/helm/" :case-fold-search smart :preselect "^[[:multibyte:] ]*helm-files\\.el$" :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*")
  helm-find-files-1("/home/thierry/labo/github/helm/" "^[[:multibyte:] ]*helm-files\\.el$")
  helm-find-files(nil)
  funcall-interactively(helm-find-files nil)
  call-interactively(helm-find-files nil nil)
  command-execute(helm-find-files)



In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0)
 of 2022-08-21 built on IPad-S340
Repository revision: 8d4789c07273f5fdc9d3c1f06e357746a012b8dd
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Linux Mint 20.3

Configured using:
 'configure --bindir=/usr/local/sbin/emacs-29.0.50 --with-mailutils
 --with-cairo'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

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

Major mode: ƐĽ

Minor modes in effect:
  bug-reference-prog-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  psession-mode: t
  psession-savehist-mode: t
  global-git-gutter-mode: t
  git-gutter-mode: t
  display-time-mode: t
  winner-mode: t
  helm-epa-mode: t
  helm-descbinds-mode: t
  helm-adaptive-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  helm-ff-icon-mode: t
  shell-dirtrack-mode: t
  helm-popup-tip-mode: t
  async-bytecomp-package-mode: t
  dired-async-mode: t
  minibuffer-depth-indicate-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow epa-mail face-remap helm-dabbrev emacsbug helm-command
tv-mu4e-config mu4e-contrib mu4e-patch mu4e mu4e-org mu4e-main mu4e-view
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig mu4e-headers
mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists
mu4e-bookmarks mu4e-mark mu4e-message flow-fill hl-line mu4e-contacts
mu4e-update mu4e-folders mu4e-server mu4e-context mu4e-vars mu4e-helpers
mu4e-config ido tramp-sh epa-file char-fold tramp-archive tramp-gvfs
tramp-cache time-stamp zeroconf rst vc-filewise vc-rcs conf-mode
ledger-config ledger-mode ledger-check ledger-texi ledger-test
ledger-sort ledger-report ledger-reconcile ledger-occur ledger-fonts
ledger-fontify ledger-state ledger-complete ledger-schedule ledger-init
ledger-xact ledger-post ledger-exec ledger-navigate eshell esh-cmd
generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups
esh-util ledger-context ledger-commodities ledger-regex checkdoc
lisp-mnt markdown-mode make-mode flymake-shellcheck flymake-proc flymake
project warnings sh-script smie executable bug-reference naquadah-theme
view solar cal-dst holidays holiday-loaddefs tv-utils osm yaml-mode
undo-tree diff queue rainbow-mode color psession frameset log-view
pcvs-util bash-completion cl-indent pcase ffap thingatpt
autocrypt-message autocrypt-gnus addressbook-bookmark gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range gnus-win message sendmail yank-media puny rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
mailabbrev gmm-utils mailheader gnus nnheader gnus-util mail-utils range
mm-util mail-prsvr autocrypt-mu4e autocrypt ietf-drums config-w3m
git-gutter mule-util appt diary-lib diary-loaddefs gud wdired
dired-extension org-config ob-gnuplot org-crypt net-utils time winner
autotest-mode autoconf-mode woman man ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util init-helm
helm-ls-git vc-git diff-mode vc vc-dispatcher helm-fd epa derived epg
rfc6068 epg-config helm-epa helm-imenu imenu helm-elisp-package
helm-find helm-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp
ob-core ob-eval org-table oc-basic bibtex ol rx org-keys oc org-compat
advice org-macs org-loaddefs cal-menu calendar cal-loaddefs
helm-external isl helm-descbinds helm-wikipedia all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons wfnames helm-ipython
helm-elisp helm-eval edebug debug backtrace find-func python
helm-bookmark helm-net xml helm-info bookmark helm-adaptive helm-mode
helm-misc helm-files image-dired xdg image-mode exif filenotify tramp
tramp-loaddefs trampver tramp-integration cus-edit pp icons wid-edit
files-x tramp-compat shell pcomplete parse-time iso8601 time-date
ls-lisp helm-buffers helm-occur helm-tags helm-locate helm-grep
wgrep-helm wgrep grep compile text-property-search comint ring
helm-regexp format-spec ansi-color helm-utils helm-help helm-types
helm-extensions-autoloads helm-config helm-autoloads helm
helm-global-bindings helm-easymenu edmacro kmacro helm-core
async-bytecomp helm-source helm-multi-match helm-lib dired-async
dired-aux dired dired-loaddefs async popup diminish cl-extra help-mode
mb-depth server avoid cus-load use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core finder-inf package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile cconv url-vars cl-loaddefs cl-lib
info w3m-load rmc iso-transl tooltip eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 711433 61721)
 (symbols 48 43557 5)
 (strings 32 252605 5718)
 (string-bytes 1 7236951)
 (vectors 16 87685)
 (vector-slots 8 1855105 189366)
 (floats 8 1904 542)
 (intervals 56 2953 483)
 (buffers 992 116))
<#secure method=pgpmime mode=sign>

-- 
Thierry






^ permalink raw reply related	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-04  7:02 bug#57572: 29.0.50; Tramp error with tramp-file-name-unify Thierry Volpiatto
@ 2022-09-04 11:12 ` Lars Ingebrigtsen
  2022-09-04 20:16   ` Thierry Volpiatto
  2022-09-10 11:31 ` Michael Albinus
  1 sibling, 1 reply; 20+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-04 11:12 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

Thierry Volpiatto <thievol@posteo.net> writes:

>  	       ;; FIXME: This is a sanity check.  When this error
>  	       ;; doesn't happen for a while, it can be removed.
> -	       (or (file-name-absolute-p localname)
> +	       (or (file-name-absolute-p (expand-file-name localname))

This patch is the same as removing that sanity check, though, since
expand-file-name always returns an absolute name.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-04 11:12 ` Lars Ingebrigtsen
@ 2022-09-04 20:16   ` Thierry Volpiatto
  0 siblings, 0 replies; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-04 20:16 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 554 bytes --]


Lars Ingebrigtsen <larsi@gnus.org> writes:

> Thierry Volpiatto <thievol@posteo.net> writes:
>
>>  	       ;; FIXME: This is a sanity check.  When this error
>>  	       ;; doesn't happen for a while, it can be removed.
>> -	       (or (file-name-absolute-p localname)
>> +	       (or (file-name-absolute-p (expand-file-name localname))
>
> This patch is the same as removing that sanity check, though, since
> expand-file-name always returns an absolute name.

The purpose of this patch is to show where the problem is...

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-04  7:02 bug#57572: 29.0.50; Tramp error with tramp-file-name-unify Thierry Volpiatto
  2022-09-04 11:12 ` Lars Ingebrigtsen
@ 2022-09-10 11:31 ` Michael Albinus
  2022-09-10 14:53   ` Thierry Volpiatto
  2022-09-10 15:20   ` Thierry Volpiatto
  1 sibling, 2 replies; 20+ messages in thread
From: Michael Albinus @ 2022-09-10 11:31 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

Thierry Volpiatto <thievol@posteo.net> writes:

> Hello,

Hi Thierry,

(sorry for the delayed reply, but I was too busy with changing Tramp to
the rx machinery)

> with helm-find-files connecting to "/sudo::" I have this error:
>
>     (file-error "File `' must be absolute")
>
> This because helm connect to tramp as soon the last ":" is entered.

Indeed.

> Debugger entered--Lisp error: (file-error "File `' must be absolute")
>   signal(file-error ("File `' must be absolute"))
>   tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute" "")
>   tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "")
>   tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef)
>   tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:")

[...]

Well, the reason for the change in Tramp is, that the file name cache
must work over absolute file names. Otherwise, it wouldn't be obvious,
for with file the cached values of "foo.txt" belong to. This file name
could be used in different directories.

> The error can be fixed with this patch modifying
> `tramp-file-name-unify`:
>
> diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
> index bb6eeaa7417..171d67b42af 100644
> --- a/lisp/net/tramp.el
> +++ b/lisp/net/tramp.el
> @@ -1495,7 +1495,7 @@ same connection.  Make a copy in order to avoid side effects."
>  	  (and (stringp localname)
>  	       ;; FIXME: This is a sanity check.  When this error
>  	       ;; doesn't happen for a while, it can be removed.
> -	       (or (file-name-absolute-p localname)
> +	       (or (file-name-absolute-p (expand-file-name localname))
>  		   (tramp-error
>  		    vec 'file-error "File `%s' must be absolute" localname))
>  	       (tramp-compat-file-name-unquote (directory-file-name localname)))

No, that's not possible. When `tramp-file-name-unify' is invoked, it is
not guaranted that `default-directory' points to a remote file name
corresponding to the relative `localname'. The file name must be
expanded in time.

When applying that patch, I did my best to identify all places in Tramp,
where `expand-file-name' must be used for caching purposes. All Tramp
test suites passed, but obviously there are more use cases in the wild
than Tramp test suite coverage.

So I've added `expand-file-name' to even more places in Tramp in the
hope, that it fits now for all cases. Pushed to master, could you please
check?

> It would be great that tramp development takes in account that there is
> nowaday many alternatives to find-file/dired that are incremental and
> connect automatically as soon as user type.  Most errors come from this
> and have to be fixed more and more frequently as soon there is changes
> in tramp code.

In this case, it was a Tramp error which has been fixed with side
effects. I'm sorry about thgat it hit you, but error fixes must
happen. There is no change in Tramp just for fun, regardless of users.

And we're here in Emacs development, master branch, in order to detect
such regressions early. That's why the sanity message was added to
`tramp-file-name-unify'.

> Thanks.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 11:31 ` Michael Albinus
@ 2022-09-10 14:53   ` Thierry Volpiatto
  2022-09-10 17:37     ` Michael Albinus
  2022-09-10 15:20   ` Thierry Volpiatto
  1 sibling, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-10 14:53 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 55905 bytes --]


Hello Michael and thanks for your answer.

Michael Albinus <michael.albinus@gmx.de> writes:

> Thierry Volpiatto <thievol@posteo.net> writes:
>
>> Hello,
>
> Hi Thierry,
>
> (sorry for the delayed reply, but I was too busy with changing Tramp to
> the rx machinery)

No problems.

> So I've added `expand-file-name' to even more places in Tramp in the
> hope, that it fits now for all cases. Pushed to master, could you please
> check?

I am using for now the emacs-28 version of tramp-file-name-unify to
prevent this error (it is inlined), to reproduce the bug with
helm-find-files you have to use:

(setq helm-ff--file-accessible-directory-p-fn
#'file-accessible-directory-p)


And I still have the error, here the backtrace, the tramp log at the end
of this message:

Debugger entered--Lisp error: (file-error "File `' must be absolute, please report a bug!")
  signal(file-error ("File `' must be absolute, please report a bug!"))
  tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute, please report a bug!" "")
  tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "")
  tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef)
  tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:")
  apply(tramp-sh-handle-file-readable-p "/sudo:root@IPad-S340:")
  tramp-sh-file-name-handler(file-readable-p "/sudo:root@IPad-S340:")
  apply(tramp-sh-file-name-handler file-readable-p "/sudo:root@IPad-S340:")
  tramp-file-name-handler(file-readable-p "/sudo:root@IPad-S340:")
  file-readable-p("/sudo:root@IPad-S340:")
  tramp-handle-file-accessible-directory-p("/sudo:root@IPad-S340:")
  apply(tramp-handle-file-accessible-directory-p "/sudo:root@IPad-S340:")
  tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:")
  apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root@IPad-S340:")
  tramp-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:")
  file-accessible-directory-p(#("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t)))
  helm-find-files-get-candidates()
  apply(helm-find-files-get-candidates nil)
  helm-apply-functions-from-source(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...) helm-find-files-get-candidates)
  helm-interpret-value(helm-find-files-get-candidates ((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-get-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-get-cached-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-compute-matches(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm--collect-matches((((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) (13 . helm-ff-RET) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1dc02d7c43ae80>)) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit2 or (...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:Help \\[h...") (header-line . #("C-j: Hit1 Expand Candidate, Hit2..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) (group . helm-files) (migemo . t))))
  helm-update()
  helm-check-new-input("/sudo::")
  helm-check-minibuffer-input()
  #f(compiled-function () #<bytecode 0x13c64df807298d0c>)()
  apply(#f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil)
  timer-event-handler([t 0 0 10000 repeat #f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil idle 0 nil])
  read-from-minibuffer(#("Find files or url: " 0 19 (face helm-minibuffer-prompt)) "/home/thierry/.emacs.d/emacs-config/" (keymap (f12 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c43ae80>)) (f8 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c459e80>)) (f7 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c448e80>)) (f6 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c46fe80>)) (f5 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c47ee80>)) (f4 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4bde80>)) (f3 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4ace80>)) (f2 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4f3e80>)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4e2e80>)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d33cd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d32dd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2aed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2bfd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d240d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d251d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d232d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d223d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d204d75>)) (110 . helm-helm-run-cycle-resume-with-subkeys) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-insert-or-copy) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736bcd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736add75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537372ed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537373fd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737c0d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737d1d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737b2d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737a3d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b5373784d75>)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-scroll-down) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-scroll-up)) (next . helm-next-page) (prior . helm-previous-page) (C-up . helm-follow-action-backward) (C-down . helm-follow-action-forward) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) ...) nil nil nil t)
  helm-read-from-minibuffer("Find files or url: " "/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$" nil nil nil nil)
  helm-internal(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)
  apply(helm-internal (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil))
  helm(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)
  apply(helm (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil))
  helm(:sources helm-source-find-files :input "/home/thierry/.emacs.d/emacs-config/" :case-fold-search smart :preselect "^[[:multibyte:] ]*init\\.el$" :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*")
  helm-find-files-1("/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$")
  helm-find-files(nil)
  funcall-interactively(helm-find-files nil)
  call-interactively(helm-find-files nil nil)
  command-execute(helm-find-files)

> And we're here in Emacs development, master branch, in order to detect
> such regressions early. That's why the sanity message was added to
> `tramp-file-name-unify'.

Ok I understand.

Here the tramp backtrace as well if that helps.

;; Emacs: 29.0.50 Tramp: 2.6.0-pre -*- mode: outline; coding: utf-8; -*-
;; Location: /usr/local/share/emacs/29.0.50/lisp/net/tramp.elc Git: master/4cf9c92e27d20da9453f9abe89d84bee5d776329
16:52:31.091698 tramp-get-file-property (10) # 
  backtrace()
  tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute, please report a bug!" "")
  tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "")
  tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef)
  tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:")
  apply(tramp-sh-handle-file-readable-p "/sudo:root@IPad-S340:")
  tramp-sh-file-name-handler(file-readable-p "/sudo:root@IPad-S340:")
  apply(tramp-sh-file-name-handler file-readable-p "/sudo:root@IPad-S340:")
  tramp-file-name-handler(file-readable-p "/sudo:root@IPad-S340:")
  file-readable-p("/sudo:root@IPad-S340:")
  tramp-handle-file-accessible-directory-p("/sudo:root@IPad-S340:")
  apply(tramp-handle-file-accessible-directory-p "/sudo:root@IPad-S340:")
  tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:")
  apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root@IPad-S340:")
  tramp-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:")
  file-accessible-directory-p(#("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t)))
  helm-find-files-get-candidates()
  apply(helm-find-files-get-candidates nil)
  helm-apply-functions-from-source(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...) helm-find-files-get-candidates)
  helm-interpret-value(helm-find-files-get-candidates ((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-get-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-get-cached-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm-compute-matches(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...))
  helm--collect-matches((((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) (13 . helm-ff-RET) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1dc02d7c43ae80>)) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit2 or (...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:Help \\[h...") (header-line . #("C-j: Hit1 Expand Candidate, Hit2..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) (group . helm-files) (migemo . t))))
  helm-update()
  helm-check-new-input("/sudo::")
  helm-check-minibuffer-input()
  #f(compiled-function () #<bytecode 0x13c64df807298d0c>)()
  apply(#f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil)
  timer-event-handler([t 0 0 10000 repeat #f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil idle 0 nil])
  read-from-minibuffer(#("Find files or url: " 0 19 (face helm-minibuffer-prompt)) "/home/thierry/.emacs.d/emacs-config/" (keymap (f12 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c43ae80>)) (f8 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c459e80>)) (f7 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c448e80>)) (f6 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c46fe80>)) (f5 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c47ee80>)) (f4 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4bde80>)) (f3 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4ace80>)) (f2 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4f3e80>)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4e2e80>)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d33cd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d32dd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2aed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2bfd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d240d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d251d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d232d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d223d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d204d75>)) (110 . helm-helm-run-cycle-resume-with-subkeys) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-insert-or-copy) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736bcd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736add75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537372ed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537373fd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737c0d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737d1d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737b2d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737a3d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b5373784d75>)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-scroll-down) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-scroll-up)) (next . helm-next-page) (prior . helm-previous-page) (C-up . helm-follow-action-backward) (C-down . helm-follow-action-forward) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) ...) nil nil nil t)
  helm-read-from-minibuffer("Find files or url: " "/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$" nil nil nil nil)
  helm-internal(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)
  apply(helm-internal (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil))
  helm(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)
  apply(helm (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil))
  helm(:sources helm-source-find-files :input "/home/thierry/.emacs.d/emacs-config/" :case-fold-search smart :preselect "^[[:multibyte:] ]*init\\.el$" :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*")
  helm-find-files-1("/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$")
  helm-find-files(nil)
  funcall-interactively(helm-find-files nil)
  call-interactively(helm-find-files nil nil)
  command-execute(helm-find-files)
16:52:31.095416 tramp-get-file-property (1) # File error: File `' must be absolute, please report a bug!
Find Files
 IPad-S340


Thanks.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 11:31 ` Michael Albinus
  2022-09-10 14:53   ` Thierry Volpiatto
@ 2022-09-10 15:20   ` Thierry Volpiatto
  2022-09-10 17:44     ` Michael Albinus
  1 sibling, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-10 15:20 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 1385 bytes --]


Michael Albinus <michael.albinus@gmx.de> writes:

>> This because helm connect to tramp as soon the last ":" is entered.
>
> Indeed.
>
>> Debugger entered--Lisp error: (file-error "File `' must be absolute")
>>   signal(file-error ("File `' must be absolute"))
>>   tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute" "")
>>   tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "")
>>   tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef)
>>   tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:")

More exactly, when helm-find-files starts with "/sudo::" and the tramp
connection is not yet enabled, we have:

(file-remote-p "/sudo::" 'localname)
=> ""

and

(helm-ff-set-pattern "/sudo::")
=> #("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t))

then this value is passed to file-accessible-directory-p and we have the
error.

I tried this and it seems to work without error:

(file-accessible-directory-p
 (if (string= (file-remote-p path 'localname) "")
     ;; First connection
     (concat path "/") ;; path == "/sudo:root@IPad-S340:" (see above)
   path)) 

Not sure if it is safe with other methods though, didn't try.

Hope that helps.

Thanks.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 14:53   ` Thierry Volpiatto
@ 2022-09-10 17:37     ` Michael Albinus
  2022-09-10 19:55       ` Thierry Volpiatto
  2022-09-11  6:49       ` Thierry Volpiatto
  0 siblings, 2 replies; 20+ messages in thread
From: Michael Albinus @ 2022-09-10 17:37 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 1998 bytes --]

Thierry Volpiatto <thievol@posteo.net> writes:

Hi Thierry,

>> So I've added `expand-file-name' to even more places in Tramp in the
>> hope, that it fits now for all cases. Pushed to master, could you please
>> check?
>
> I am using for now the emacs-28 version of tramp-file-name-unify to
> prevent this error (it is inlined), to reproduce the bug with
> helm-find-files you have to use:
>
> (setq helm-ff--file-accessible-directory-p-fn
> #'file-accessible-directory-p)

The version w/o a check will work most of the cases, because the vast
majority of file name cache calls use already absolute file names. But
there have been wrong cache data sporadically, that's why I have changed
to require absolute file names, after I could debug it to the reason (it
was a long way to trap it).

> And I still have the error, here the backtrace, the tramp log at the end
> of this message:
>
> Debugger entered--Lisp error: (file-error "File `' must be absolute, please report a bug!")
>   signal(file-error ("File `' must be absolute, please report a bug!"))
>   tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute, please report a bug!" "")
>   tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "")
>   tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef)
>   tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:")

Hmm. Due to my patch, `tramp-sh-handle-file-readable-p' calls definitely
`expand-file-name', before it consults the cache via
`tramp-get-file-property'.

But wait, you are in file name completion. So I guess you have bound
`non-essential' to t. In that case, `expand-file-name' expands only, if
the connection is established already.

That means the Tramp file name cache is useless, when the connection is
not established yet, or if `non-essential' is non-nil.

Could you pls check whether the appended patch works for you?

> Thanks.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 5103 bytes --]

*** /tmp/ediffH7PJjY	2022-09-10 19:34:21.792552738 +0200
--- /home/albinus/src/tramp/lisp/tramp-cache.el	2022-09-10 19:21:05.239593463 +0200
***************
*** 133,138 ****
--- 133,139 ----
  (defun tramp-get-file-property (key file property &optional default)
    "Get the PROPERTY of FILE from the cache context of KEY.
  Return DEFAULT if not set."
+   (if non-essential default
    ;; Unify localname.  Remove hop from `tramp-file-name' structure.
    (setq key (tramp-file-name-unify key file))
    (let* ((hash (tramp-get-hash-table key))
***************
*** 167,173 ****
  			   (symbol-value var))
  		      0)))
  	(set var (1+ val))))
!     value))

  (add-hook 'tramp-cache-unload-hook
  	  (lambda ()
--- 168,174 ----
  			   (symbol-value var))
  		      0)))
  	(set var (1+ val))))
!     value)))

  (add-hook 'tramp-cache-unload-hook
  	  (lambda ()
***************
*** 178,183 ****
--- 179,185 ----
  (defun tramp-set-file-property (key file property value)
    "Set the PROPERTY of FILE to VALUE, in the cache context of KEY.
  Return VALUE."
+   (if non-essential value
    ;; Unify localname.  Remove hop from `tramp-file-name' structure.
    (setq key (tramp-file-name-unify key file))
    (let ((hash (tramp-get-hash-table key)))
***************
*** 192,198 ****
  			   (symbol-value var))
  		      0)))
  	(set var (1+ val))))
!     value))

  (add-hook 'tramp-cache-unload-hook
  	  (lambda ()
--- 194,200 ----
  			   (symbol-value var))
  		      0)))
  	(set var (1+ val))))
!     value)))

  (add-hook 'tramp-cache-unload-hook
  	  (lambda ()
***************
*** 208,223 ****
  ;;;###tramp-autoload
  (defun tramp-flush-file-property (key file property)
    "Remove PROPERTY of FILE in the cache context of KEY."
    ;; Unify localname.  Remove hop from `tramp-file-name' structure.
    (setq key (tramp-file-name-unify key file))
    (remhash property (tramp-get-hash-table key))
    (tramp-message key 8 "%s %s" (tramp-file-name-localname key) property)
    (when (>= tramp-verbose 10)
      (let ((var (intern (concat "tramp-cache-set-count-" property))))
!       (makunbound var))))

  (defun tramp-flush-file-upper-properties (key file)
    "Remove some properties of FILE's upper directory."
    (when (file-name-absolute-p file)
      ;; `file-name-directory' can return nil, for example for "~".
      (when-let ((file (file-name-directory file))
--- 210,227 ----
  ;;;###tramp-autoload
  (defun tramp-flush-file-property (key file property)
    "Remove PROPERTY of FILE in the cache context of KEY."
+   (unless non-essential
    ;; Unify localname.  Remove hop from `tramp-file-name' structure.
    (setq key (tramp-file-name-unify key file))
    (remhash property (tramp-get-hash-table key))
    (tramp-message key 8 "%s %s" (tramp-file-name-localname key) property)
    (when (>= tramp-verbose 10)
      (let ((var (intern (concat "tramp-cache-set-count-" property))))
!       (makunbound var)))))

  (defun tramp-flush-file-upper-properties (key file)
    "Remove some properties of FILE's upper directory."
+   (unless non-essential
    (when (file-name-absolute-p file)
      ;; `file-name-directory' can return nil, for example for "~".
      (when-let ((file (file-name-directory file))
***************
*** 229,239 ****
  	       (rx
  		bos (| "directory-" "file-name-all-completions" "file-entries"))
  	       property)
! 	  (tramp-flush-file-property key file property))))))

  ;;;###tramp-autoload
  (defun tramp-flush-file-properties (key file)
    "Remove all properties of FILE in the cache context of KEY."
    (let ((truename (tramp-get-file-property key file "file-truename")))
      ;; Unify localname.  Remove hop from `tramp-file-name' structure.
      (setq key (tramp-file-name-unify key file))
--- 233,244 ----
  	       (rx
  		bos (| "directory-" "file-name-all-completions" "file-entries"))
  	       property)
! 	  (tramp-flush-file-property key file property)))))))

  ;;;###tramp-autoload
  (defun tramp-flush-file-properties (key file)
    "Remove all properties of FILE in the cache context of KEY."
+   (unless non-essential
    (let ((truename (tramp-get-file-property key file "file-truename")))
      ;; Unify localname.  Remove hop from `tramp-file-name' structure.
      (setq key (tramp-file-name-unify key file))
***************
*** 244,250 ****
  	       (not (string-equal file (directory-file-name truename))))
        (tramp-flush-file-properties key truename))
      ;; Remove selected properties of upper directory.
!     (tramp-flush-file-upper-properties key file)))

  ;;;###tramp-autoload
  (defun tramp-flush-directory-properties (key directory)
--- 249,255 ----
  	       (not (string-equal file (directory-file-name truename))))
        (tramp-flush-file-properties key truename))
      ;; Remove selected properties of upper directory.
!     (tramp-flush-file-upper-properties key file))))

  ;;;###tramp-autoload
  (defun tramp-flush-directory-properties (key directory)

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 15:20   ` Thierry Volpiatto
@ 2022-09-10 17:44     ` Michael Albinus
  0 siblings, 0 replies; 20+ messages in thread
From: Michael Albinus @ 2022-09-10 17:44 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

Thierry Volpiatto <thievol@posteo.net> writes:

Hi Thierry,

> I tried this and it seems to work without error:
>
> (file-accessible-directory-p
>  (if (string= (file-remote-p path 'localname) "")
>      ;; First connection
>      (concat path "/") ;; path == "/sudo:root@IPad-S340:" (see above)
>    path))
>
> Not sure if it is safe with other methods though, didn't try.

No, in general "/method:host:" isn't equal to "/method:host:/". So the
cache values would be kept for the wrong file.

> Thanks.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 17:37     ` Michael Albinus
@ 2022-09-10 19:55       ` Thierry Volpiatto
  2022-09-12  4:34         ` Richard Stallman
  2022-09-11  6:49       ` Thierry Volpiatto
  1 sibling, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-10 19:55 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 219 bytes --]


Michael Albinus <michael.albinus@gmx.de> writes:

> Could you pls check whether the appended patch works for you?

Could you send a git based patch? I don't know how to apply this one.

Thanks.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 17:37     ` Michael Albinus
  2022-09-10 19:55       ` Thierry Volpiatto
@ 2022-09-11  6:49       ` Thierry Volpiatto
  2022-09-11  8:18         ` Michael Albinus
  1 sibling, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-11  6:49 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 669 bytes --]


Michael Albinus <michael.albinus@gmx.de> writes:

> But wait, you are in file name completion.

Yes, but not sure tramp detects a "file name completion" here as it is
not a standard completion used here.

> So I guess you have bound `non-essential' to t. In that case,
> `expand-file-name' expands only, if the connection is established
> already.

I have now bound non-essential to nil _before_ calling
file-accessible-directory-p and I have no error.
Perhaps it is the right way to do?

Note that the tramp process is not detected (nil), even if all work fine:

Tramp: Opening connection nil for root@IPad-S340 using sudo...done


-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11  6:49       ` Thierry Volpiatto
@ 2022-09-11  8:18         ` Michael Albinus
  2022-09-11  8:50           ` Thierry Volpiatto
  2022-09-11 10:14           ` Thierry Volpiatto
  0 siblings, 2 replies; 20+ messages in thread
From: Michael Albinus @ 2022-09-11  8:18 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

Thierry Volpiatto <thievol@posteo.net> writes:

Hi Thierry,

>> But wait, you are in file name completion.
>
> Yes, but not sure tramp detects a "file name completion" here as it is
> not a standard completion used here.

Tramp doesn't need to detect that you're in file name completion or
whatever, there are some functions to be called depending on the file
name syntax you pass as arguments, that's all.

>> So I guess you have bound `non-essential' to t. In that case,
>> `expand-file-name' expands only, if the connection is established
>> already.
>
> I have now bound non-essential to nil _before_ calling
> file-accessible-directory-p and I have no error.
> Perhaps it is the right way to do?

non-essential is a mean to tell Tramp, that it shouldn't open a
connection when it isn't established yet. That's why you bind it in helm
to t. Of course it will work when you don't bind it. But then, there are
other problems.

The patch I've shown to you yesterday solves your helm-find-files
case, but the Tramp testsuite fails. I'm analyzing what's up.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11  8:18         ` Michael Albinus
@ 2022-09-11  8:50           ` Thierry Volpiatto
  2022-09-11 13:08             ` Michael Albinus
  2022-09-11 10:14           ` Thierry Volpiatto
  1 sibling, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-11  8:50 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 1525 bytes --]


Hello Michael,

Michael Albinus <michael.albinus@gmx.de> writes:

> Thierry Volpiatto <thievol@posteo.net> writes:
>
> Hi Thierry,
>
>>> But wait, you are in file name completion.
>>
>> Yes, but not sure tramp detects a "file name completion" here as it is
>> not a standard completion used here.
>
> Tramp doesn't need to detect that you're in file name completion or
> whatever, there are some functions to be called depending on the file
> name syntax you pass as arguments, that's all.
>
>>> So I guess you have bound `non-essential' to t. In that case,
>>> `expand-file-name' expands only, if the connection is established
>>> already.
>>
>> I have now bound non-essential to nil _before_ calling
>> file-accessible-directory-p and I have no error.
>> Perhaps it is the right way to do?
>
> non-essential is a mean to tell Tramp, that it shouldn't open a
> connection when it isn't established yet.

Yes, it is what I always understood but I am now confused because the
connection is trigerred by file-accessible-directory-p even with
non-essential==t.


> That's why you bind it in helm to t. Of course it will work when you
> don't bind it.

It is bound to t on top but it is nil in helm-find-files-get-candidates.

> But then, there are other problems.

Yes of course but only if I bind it on top, isn't it?

> The patch I've shown to you yesterday solves your helm-find-files
> case, but the Tramp testsuite fails. I'm analyzing what's up.

Ok thanks.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11  8:18         ` Michael Albinus
  2022-09-11  8:50           ` Thierry Volpiatto
@ 2022-09-11 10:14           ` Thierry Volpiatto
  2022-09-11 12:58             ` Michael Albinus
  1 sibling, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-11 10:14 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 307 bytes --]


Michael Albinus <michael.albinus@gmx.de> writes:

> The patch I've shown to you yesterday solves your helm-find-files
> case,

Finally could apply the patch and I confirm it fixes the error.

> but the Tramp testsuite fails. I'm analyzing what's up.
>
> Best regards, Michael.


-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11 10:14           ` Thierry Volpiatto
@ 2022-09-11 12:58             ` Michael Albinus
  2022-09-11 14:25               ` Thierry Volpiatto
  0 siblings, 1 reply; 20+ messages in thread
From: Michael Albinus @ 2022-09-11 12:58 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

Thierry Volpiatto <thievol@posteo.net> writes:

Hi Thierry,

>> The patch I've shown to you yesterday solves your helm-find-files
>> case,
>
> Finally could apply the patch and I confirm it fixes the error.

Thanks for the feedback.

>> but the Tramp testsuite fails. I'm analyzing what's up.

Finally, I've fixed this. I don't check any longer for `non-essential'.
Instead, the Tramp cache is disabled when it is invoked with a relative
file name. This seems to be more robust, and it passes both
helm-find-files and the Tramp testsuite check.

Pushed to master. Could you give it a try?

Best regards, Michael.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11  8:50           ` Thierry Volpiatto
@ 2022-09-11 13:08             ` Michael Albinus
  2022-09-11 14:29               ` Thierry Volpiatto
  0 siblings, 1 reply; 20+ messages in thread
From: Michael Albinus @ 2022-09-11 13:08 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572

Thierry Volpiatto <thievol@posteo.net> writes:

> Hello Michael,

Hi Thierry,

>> non-essential is a mean to tell Tramp, that it shouldn't open a
>> connection when it isn't established yet.
>
> Yes, it is what I always understood but I am now confused because the
> connection is trigerred by file-accessible-directory-p even with
> non-essential==t.

Well, non-essential is not checked for *all* basic functions. Its most
important use is to prevent expand-file-name and file-exists-p from
action. See function tramp-connectable-p, and its use in tramp.el and
tramp-sh.el.

Why it has triggered file-accessible-directory-p to go remote I cannot
analyze w/o traces.

>> That's why you bind it in helm to t. Of course it will work when you
>> don't bind it.
>
> It is bound to t on top but it is nil in helm-find-files-get-candidates.

Well, this lets Tramp connect.

>> But then, there are other problems.
>
> Yes of course but only if I bind it on top, isn't it?

Wherever you bind it. If a Tramp function is called, and non-essential
is nil, Tramp is likely to go remote. If you want it, fine.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11 12:58             ` Michael Albinus
@ 2022-09-11 14:25               ` Thierry Volpiatto
  2022-09-11 16:29                 ` Michael Albinus
  0 siblings, 1 reply; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-11 14:25 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 453 bytes --]


Michael Albinus <michael.albinus@gmx.de> writes:

> Finally, I've fixed this. I don't check any longer for `non-essential'.
> Instead, the Tramp cache is disabled when it is invoked with a relative
> file name. This seems to be more robust, and it passes both
> helm-find-files and the Tramp testsuite check.
>
> Pushed to master. Could you give it a try?

It is working fine now, no error.

Thanks you very much for this.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11 13:08             ` Michael Albinus
@ 2022-09-11 14:29               ` Thierry Volpiatto
  0 siblings, 0 replies; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-11 14:29 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 57572

[-- Attachment #1: Type: text/plain, Size: 336 bytes --]


Michael Albinus <michael.albinus@gmx.de> writes:

> Well, non-essential is not checked for *all* basic functions. Its most
> important use is to prevent expand-file-name and file-exists-p from
> action. See function tramp-connectable-p, and its use in tramp.el and
> tramp-sh.el.

Thanks to clarify its usage.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-11 14:25               ` Thierry Volpiatto
@ 2022-09-11 16:29                 ` Michael Albinus
  0 siblings, 0 replies; 20+ messages in thread
From: Michael Albinus @ 2022-09-11 16:29 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: 57572-done

Version: 29.1

Thierry Volpiatto <thievol@posteo.net> writes:

Hi Thierry,

>> Finally, I've fixed this. I don't check any longer for `non-essential'.
>> Instead, the Tramp cache is disabled when it is invoked with a relative
>> file name. This seems to be more robust, and it passes both
>> helm-find-files and the Tramp testsuite check.
>>
>> Pushed to master. Could you give it a try?
>
> It is working fine now, no error.

Thanks, I'm closing the bug.

> Thanks you very much for this.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-10 19:55       ` Thierry Volpiatto
@ 2022-09-12  4:34         ` Richard Stallman
  2022-09-12  4:43           ` Thierry Volpiatto
  0 siblings, 1 reply; 20+ messages in thread
From: Richard Stallman @ 2022-09-12  4:34 UTC (permalink / raw)
  To: Thierry Volpiatto; +Cc: michael.albinus, 57572

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

You can apply a patch by running
  patch < patchfile
in the directory where the source files to be patched are found.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)







^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
  2022-09-12  4:34         ` Richard Stallman
@ 2022-09-12  4:43           ` Thierry Volpiatto
  0 siblings, 0 replies; 20+ messages in thread
From: Thierry Volpiatto @ 2022-09-12  4:43 UTC (permalink / raw)
  To: rms; +Cc: michael.albinus, 57572

[-- Attachment #1: Type: text/plain, Size: 198 bytes --]


Richard Stallman <rms@gnu.org> writes:

> You can apply a patch by running
>   patch < patchfile
> in the directory where the source files to be patched are found.

Thanks.

-- 
Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2022-09-12  4:43 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-04  7:02 bug#57572: 29.0.50; Tramp error with tramp-file-name-unify Thierry Volpiatto
2022-09-04 11:12 ` Lars Ingebrigtsen
2022-09-04 20:16   ` Thierry Volpiatto
2022-09-10 11:31 ` Michael Albinus
2022-09-10 14:53   ` Thierry Volpiatto
2022-09-10 17:37     ` Michael Albinus
2022-09-10 19:55       ` Thierry Volpiatto
2022-09-12  4:34         ` Richard Stallman
2022-09-12  4:43           ` Thierry Volpiatto
2022-09-11  6:49       ` Thierry Volpiatto
2022-09-11  8:18         ` Michael Albinus
2022-09-11  8:50           ` Thierry Volpiatto
2022-09-11 13:08             ` Michael Albinus
2022-09-11 14:29               ` Thierry Volpiatto
2022-09-11 10:14           ` Thierry Volpiatto
2022-09-11 12:58             ` Michael Albinus
2022-09-11 14:25               ` Thierry Volpiatto
2022-09-11 16:29                 ` Michael Albinus
2022-09-10 15:20   ` Thierry Volpiatto
2022-09-10 17:44     ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).