GNU bug report logs - #57572
29.0.50; Tramp error with tramp-file-name-unify

Previous Next

Package: emacs;

Reported by: Thierry Volpiatto <thievol <at> posteo.net>

Date: Sun, 4 Sep 2022 07:17:01 UTC

Severity: normal

Merged with 57676

Found in version 29.0.50

Fixed in version 29.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 57572 in the body.
You can then email your comments to 57572 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 04 Sep 2022 07:17:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thierry Volpiatto <thievol <at> posteo.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 04 Sep 2022 07:17:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 04 Sep 2022 07:02:59 +0000
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 <at> IPad-S340:")
  apply(tramp-sh-handle-file-readable-p "/sudo:root <at> IPad-S340:")
  tramp-sh-file-name-handler(file-readable-p "/sudo:root <at> IPad-S340:")
  apply(tramp-sh-file-name-handler file-readable-p "/sudo:root <at> IPad-S340:")
  tramp-file-name-handler(file-readable-p "/sudo:root <at> IPad-S340:")
  file-readable-p("/sudo:root <at> IPad-S340:")
  tramp-handle-file-accessible-directory-p("/sudo:root <at> IPad-S340:")
  apply(tramp-handle-file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  tramp-file-name-handler(file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  file-accessible-directory-p(#("/sudo:root <at> 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 <at> 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 <at> 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 <at> 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 <at> 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 <at> 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 <at> 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





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 04 Sep 2022 11:13:02 GMT) Full text and rfc822 format available.

Message #8 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 04 Sep 2022 13:12:03 +0200
Thierry Volpiatto <thievol <at> 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.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 04 Sep 2022 20:27:02 GMT) Full text and rfc822 format available.

Message #11 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 04 Sep 2022 20:16:28 +0000
[Message part 1 (text/plain, inline)]
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> Thierry Volpiatto <thievol <at> 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
[signature.asc (application/pgp-signature, inline)]

Forcibly Merged 57572 57676. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Thu, 08 Sep 2022 13:14:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sat, 10 Sep 2022 11:32:02 GMT) Full text and rfc822 format available.

Message #16 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sat, 10 Sep 2022 13:31:28 +0200
Thierry Volpiatto <thievol <at> 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 <at> 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.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sat, 10 Sep 2022 15:02:01 GMT) Full text and rfc822 format available.

Message #19 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sat, 10 Sep 2022 14:53:36 +0000
[Message part 1 (text/plain, inline)]
Hello Michael and thanks for your answer.

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

> Thierry Volpiatto <thievol <at> 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 <at> IPad-S340:")
  apply(tramp-sh-handle-file-readable-p "/sudo:root <at> IPad-S340:")
  tramp-sh-file-name-handler(file-readable-p "/sudo:root <at> IPad-S340:")
  apply(tramp-sh-file-name-handler file-readable-p "/sudo:root <at> IPad-S340:")
  tramp-file-name-handler(file-readable-p "/sudo:root <at> IPad-S340:")
  file-readable-p("/sudo:root <at> IPad-S340:")
  tramp-handle-file-accessible-directory-p("/sudo:root <at> IPad-S340:")
  apply(tramp-handle-file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  tramp-file-name-handler(file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  file-accessible-directory-p(#("/sudo:root <at> 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 <at> IPad-S340:")
  apply(tramp-sh-handle-file-readable-p "/sudo:root <at> IPad-S340:")
  tramp-sh-file-name-handler(file-readable-p "/sudo:root <at> IPad-S340:")
  apply(tramp-sh-file-name-handler file-readable-p "/sudo:root <at> IPad-S340:")
  tramp-file-name-handler(file-readable-p "/sudo:root <at> IPad-S340:")
  file-readable-p("/sudo:root <at> IPad-S340:")
  tramp-handle-file-accessible-directory-p("/sudo:root <at> IPad-S340:")
  apply(tramp-handle-file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  tramp-file-name-handler(file-accessible-directory-p "/sudo:root <at> IPad-S340:")
  file-accessible-directory-p(#("/sudo:root <at> 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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sat, 10 Sep 2022 15:33:02 GMT) Full text and rfc822 format available.

Message #22 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sat, 10 Sep 2022 15:20:20 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> 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 <at> 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 <at> 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 <at> IPad-S340:" (see above)
   path)) 

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

Hope that helps.

Thanks.

-- 
Thierry
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sat, 10 Sep 2022 17:39:02 GMT) Full text and rfc822 format available.

Message #25 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sat, 10 Sep 2022 19:37:57 +0200
[Message part 1 (text/plain, inline)]
Thierry Volpiatto <thievol <at> 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 <at> 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.

[Message part 2 (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sat, 10 Sep 2022 17:46:02 GMT) Full text and rfc822 format available.

Message #28 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sat, 10 Sep 2022 19:44:58 +0200
Thierry Volpiatto <thievol <at> 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 <at> 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.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sat, 10 Sep 2022 20:00:02 GMT) Full text and rfc822 format available.

Message #31 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sat, 10 Sep 2022 19:55:02 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> 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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 06:58:02 GMT) Full text and rfc822 format available.

Message #34 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 06:49:10 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> 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 <at> IPad-S340 using sudo...done


-- 
Thierry
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 08:19:01 GMT) Full text and rfc822 format available.

Message #37 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 10:18:25 +0200
Thierry Volpiatto <thievol <at> 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.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 09:01:02 GMT) Full text and rfc822 format available.

Message #40 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 08:50:43 +0000
[Message part 1 (text/plain, inline)]
Hello Michael,

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

> Thierry Volpiatto <thievol <at> 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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 10:17:02 GMT) Full text and rfc822 format available.

Message #43 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 10:14:52 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> 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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 12:59:02 GMT) Full text and rfc822 format available.

Message #46 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 14:58:22 +0200
Thierry Volpiatto <thievol <at> 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.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 13:09:01 GMT) Full text and rfc822 format available.

Message #49 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 15:08:39 +0200
Thierry Volpiatto <thievol <at> 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.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 14:28:01 GMT) Full text and rfc822 format available.

Message #52 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 14:25:53 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> 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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Sun, 11 Sep 2022 14:32:02 GMT) Full text and rfc822 format available.

Message #55 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 14:29:22 +0000
[Message part 1 (text/plain, inline)]
Michael Albinus <michael.albinus <at> 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
[signature.asc (application/pgp-signature, inline)]

Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Sun, 11 Sep 2022 16:30:02 GMT) Full text and rfc822 format available.

Notification sent to Thierry Volpiatto <thievol <at> posteo.net>:
bug acknowledged by developer. (Sun, 11 Sep 2022 16:30:02 GMT) Full text and rfc822 format available.

Message #60 received at 57572-done <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: 57572-done <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Sun, 11 Sep 2022 18:29:07 +0200
Version: 29.1

Thierry Volpiatto <thievol <at> 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.




Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Sun, 11 Sep 2022 16:30:03 GMT) Full text and rfc822 format available.

Notification sent to James Ferguson <james <at> faff.org>:
bug acknowledged by developer. (Sun, 11 Sep 2022 16:30:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Mon, 12 Sep 2022 04:35:01 GMT) Full text and rfc822 format available.

Message #68 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Richard Stallman <rms <at> gnu.org>
To: Thierry Volpiatto <thievol <at> posteo.net>
Cc: michael.albinus <at> gmx.de, 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Mon, 12 Sep 2022 00:34:38 -0400
[[[ 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)






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57572; Package emacs. (Mon, 12 Sep 2022 04:45:02 GMT) Full text and rfc822 format available.

Message #71 received at 57572 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thievol <at> posteo.net>
To: rms <at> gnu.org
Cc: michael.albinus <at> gmx.de, 57572 <at> debbugs.gnu.org
Subject: Re: bug#57572: 29.0.50; Tramp error with tramp-file-name-unify
Date: Mon, 12 Sep 2022 04:43:31 +0000
[Message part 1 (text/plain, inline)]
Richard Stallman <rms <at> 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
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 10 Oct 2022 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 255 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.