* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify @ 2022-09-04 7:02 Thierry Volpiatto 2022-09-04 11:12 ` Lars Ingebrigtsen 2022-09-10 11:31 ` Michael Albinus 0 siblings, 2 replies; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-04 7:02 UTC (permalink / raw) To: 57572 Hello, with helm-find-files connecting to "/sudo::" I have this error: (file-error "File `' must be absolute") This because helm connect to tramp as soon the last ":" is entered. The error can be fixed with this patch modifying `tramp-file-name-unify`: diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index bb6eeaa7417..171d67b42af 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1495,7 +1495,7 @@ same connection. Make a copy in order to avoid side effects." (and (stringp localname) ;; FIXME: This is a sanity check. When this error ;; doesn't happen for a while, it can be removed. - (or (file-name-absolute-p localname) + (or (file-name-absolute-p (expand-file-name localname)) (tramp-error vec 'file-error "File `%s' must be absolute" localname)) (tramp-compat-file-name-unquote (directory-file-name localname))) It would be great that tramp development takes in account that there is nowaday many alternatives to find-file/dired that are incremental and connect automatically as soon as user type. Most errors come from this and have to be fixed more and more frequently as soon there is changes in tramp code. Thanks. Here the backtrace: Debugger entered--Lisp error: (file-error "File `' must be absolute") signal(file-error ("File `' must be absolute")) tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute" "") tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "") tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef) tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:") apply(tramp-sh-handle-file-readable-p "/sudo:root@IPad-S340:") tramp-sh-file-name-handler(file-readable-p "/sudo:root@IPad-S340:") apply(tramp-sh-file-name-handler file-readable-p "/sudo:root@IPad-S340:") tramp-file-name-handler(file-readable-p "/sudo:root@IPad-S340:") file-readable-p("/sudo:root@IPad-S340:") tramp-handle-file-accessible-directory-p("/sudo:root@IPad-S340:") apply(tramp-handle-file-accessible-directory-p "/sudo:root@IPad-S340:") tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:") apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root@IPad-S340:") tramp-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:") file-accessible-directory-p(#("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t))) (let* ((path (helm-ff-set-pattern helm-pattern)) (dir-p (file-accessible-directory-p path)) basedir invalid-basedir non-essential (tramp-verbose helm-tramp-verbose)) (setq helm--ignore-errors (file-remote-p path)) (set-text-properties 0 (length path) nil path) (if (or (string= path "@@TRAMP@@") (string= path "") (and (string-match-p ":\\'" path) (helm-ff--tramp-postfixed-p path)) (let ((it (file-name-directory path))) (if it (file-directory-p it)))) nil (setq invalid-basedir t)) (if (or (string= path "@@TRAMP@@") invalid-basedir) nil (setq helm-ff-auto-update-flag (if (or (null helm-ff--auto-update-state) helm-ff--deleting-char-backward (and dir-p (not (string-match-p "/\\'" path)))) nil (or (>= (length (helm-basename path)) 3) dir-p))) (helm-log "Pattern=%S" (setq helm-pattern (if (string-match helm-ff-tramp-method-regexp path) helm-pattern (helm-ff--transform-pattern-for-completion path)))) (setq basedir (or (let ((it (if ... ... ...))) (if it (expand-file-name it))) default-directory)) (setq helm-ff-default-directory (if (string= helm-pattern "") (expand-file-name "/") (if (or (string-match helm-ff-url-regexp path) (and helm--url-regexp (string-match helm--url-regexp path))) nil basedir)))) (if (and (string-match ":\\'" path) (file-remote-p basedir nil t)) (progn (setq helm-pattern basedir))) (cond ((string-match helm-ff-tramp-method-regexp path) (mapcar #'(lambda (method) (helm-ff-filter-candidate-one-by-one (concat "/" ":" method))) (helm-ff--get-tramp-methods))) ((string= path "@@TRAMP@@") (helm-ff--tramp-hostnames)) ((or (and (file-regular-p path) (eq last-repeatable-command 'helm-execute-persistent-action)) (string-match helm-ff-url-regexp path) invalid-basedir (and (not (file-exists-p path)) (string-match "/$" path)) (and helm--url-regexp (string-match helm--url-regexp path))) (list (helm-ff-filter-candidate-one-by-one path nil t))) ((string= path "") (helm-ff-directory-files "/")) ((and (file-directory-p path) (not (file-readable-p path))) (list (cons (format "@@@@file-error: Opening directory permission denie..." path) path))) ((and dir-p helm-ff-auto-update-flag) (helm-ff-directory-files path)) (t (append (if (or (eq require-match t) (file-exists-p path) dir-p) nil (list (helm-ff-filter-candidate-one-by-one path nil t))) (helm-ff-directory-files basedir))))) helm-find-files-get-candidates() apply(helm-find-files-get-candidates nil) helm-apply-functions-from-source(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...) helm-find-files-get-candidates) helm-interpret-value(helm-find-files-get-candidates ((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-get-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-get-cached-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-compute-matches(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm--collect-matches((((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/sudo:root@IPad-S340:/etc/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) (13 . helm-ff-RET) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1dc018d1d86e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1dc018d1e85e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1dc018d1e94e80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1dc018d1dfbe80>)) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit2 or (...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd11fef15931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b00715931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42b15931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe735931>) #f(compiled-function (actions candidate) #<bytecode 0x711506b42c65931>) #f(compiled-function (actions candidate) #<bytecode 0x717fd11fe865931>) #f(compiled-function (actions candidate) #<bytecode 0x7176ea2a1065931>) helm-find-files-action-transformer) (candidate-number-limit . 5000) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:Help \\[h...") (header-line . #("C-j: Hit1 Expand Candidate, Hit2..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) (group . helm-files) (migemo . t)))) helm-update() helm-check-new-input("/sudo::") helm-check-minibuffer-input() #f(compiled-function () #<bytecode 0x122c2674354551d8>)() apply(#f(compiled-function () #<bytecode 0x122c2674354551d8>) nil) timer-event-handler([t 0 0 10000 repeat #f(compiled-function () #<bytecode 0x122c2674354551d8>) nil idle 0 nil]) read-from-minibuffer(#("Find files or url: " 0 19 (face helm-minibuffer-prompt)) "/home/thierry/labo/github/helm/" (keymap (f12 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1d86e80>)) (f11 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1e85e80>)) (f10 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1e94e80>)) (f9 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1dfbe80>)) (f8 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1deae80>)) (f7 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1d29e80>)) (f6 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1d38e80>)) (f5 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1dbfe80>)) (f4 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1daee80>)) (f3 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1dcde80>)) (f2 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1ddce80>)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc018d1cc3e80>)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa595fcd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa595edd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa599eed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa599ffd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59900d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59911d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59972d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59963d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x46027fa59944d75>)) (110 . helm-helm-run-cycle-resume-with-subkeys) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-insert-or-copy) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be57cd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be56dd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be66ed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be67fd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be680d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be691d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be6f2d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be6e3d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x4602f65be6c4d75>)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-scroll-down) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-scroll-up)) (next . helm-next-page) (prior . helm-previous-page) (C-up . helm-follow-action-backward) (C-down . helm-follow-action-forward) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) ...) nil nil nil t) helm-read-from-minibuffer("Find files or url: " "/home/thierry/labo/github/helm/" "^[[:multibyte:] ]*helm-files\\.el$" nil nil nil nil) helm-internal(helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil) apply(helm-internal (helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil)) helm(helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil) apply(helm (helm-source-find-files "/home/thierry/labo/github/helm/" "Find files or url: " nil "^[[:multibyte:] ]*helm-files\\.el$" "*helm find files*" nil nil nil)) helm(:sources helm-source-find-files :input "/home/thierry/labo/github/helm/" :case-fold-search smart :preselect "^[[:multibyte:] ]*helm-files\\.el$" :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*") helm-find-files-1("/home/thierry/labo/github/helm/" "^[[:multibyte:] ]*helm-files\\.el$") helm-find-files(nil) funcall-interactively(helm-find-files nil) call-interactively(helm-find-files nil nil) command-execute(helm-find-files) In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0) of 2022-08-21 built on IPad-S340 Repository revision: 8d4789c07273f5fdc9d3c1f06e357746a012b8dd Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12013000 System Description: Linux Mint 20.3 Configured using: 'configure --bindir=/usr/local/sbin/emacs-29.0.50 --with-mailutils --with-cairo' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: fr_FR.UTF-8 locale-coding-system: utf-8-unix Major mode: ƐĽ Minor modes in effect: bug-reference-prog-mode: t global-undo-tree-mode: t undo-tree-mode: t psession-mode: t psession-savehist-mode: t global-git-gutter-mode: t git-gutter-mode: t display-time-mode: t winner-mode: t helm-epa-mode: t helm-descbinds-mode: t helm-adaptive-mode: t helm-mode: t helm-minibuffer-history-mode: t helm-ff-icon-mode: t shell-dirtrack-mode: t helm-popup-tip-mode: t async-bytecomp-package-mode: t dired-async-mode: t minibuffer-depth-indicate-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow epa-mail face-remap helm-dabbrev emacsbug helm-command tv-mu4e-config mu4e-contrib mu4e-patch mu4e mu4e-org mu4e-main mu4e-view gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-server mu4e-context mu4e-vars mu4e-helpers mu4e-config ido tramp-sh epa-file char-fold tramp-archive tramp-gvfs tramp-cache time-stamp zeroconf rst vc-filewise vc-rcs conf-mode ledger-config ledger-mode ledger-check ledger-texi ledger-test ledger-sort ledger-report ledger-reconcile ledger-occur ledger-fonts ledger-fontify ledger-state ledger-complete ledger-schedule ledger-init ledger-xact ledger-post ledger-exec ledger-navigate eshell esh-cmd generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util ledger-context ledger-commodities ledger-regex checkdoc lisp-mnt markdown-mode make-mode flymake-shellcheck flymake-proc flymake project warnings sh-script smie executable bug-reference naquadah-theme view solar cal-dst holidays holiday-loaddefs tv-utils osm yaml-mode undo-tree diff queue rainbow-mode color psession frameset log-view pcvs-util bash-completion cl-indent pcase ffap thingatpt autocrypt-message autocrypt-gnus addressbook-bookmark gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win message sendmail yank-media puny rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mailabbrev gmm-utils mailheader gnus nnheader gnus-util mail-utils range mm-util mail-prsvr autocrypt-mu4e autocrypt ietf-drums config-w3m git-gutter mule-util appt diary-lib diary-loaddefs gud wdired dired-extension org-config ob-gnuplot org-crypt net-utils time winner autotest-mode autoconf-mode woman man ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util init-helm helm-ls-git vc-git diff-mode vc vc-dispatcher helm-fd epa derived epg rfc6068 epg-config helm-epa helm-imenu imenu helm-elisp-package helm-find helm-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex ol rx org-keys oc org-compat advice org-macs org-loaddefs cal-menu calendar cal-loaddefs helm-external isl helm-descbinds helm-wikipedia all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons wfnames helm-ipython helm-elisp helm-eval edebug debug backtrace find-func python helm-bookmark helm-net xml helm-info bookmark helm-adaptive helm-mode helm-misc helm-files image-dired xdg image-mode exif filenotify tramp tramp-loaddefs trampver tramp-integration cus-edit pp icons wid-edit files-x tramp-compat shell pcomplete parse-time iso8601 time-date ls-lisp helm-buffers helm-occur helm-tags helm-locate helm-grep wgrep-helm wgrep grep compile text-property-search comint ring helm-regexp format-spec ansi-color helm-utils helm-help helm-types helm-extensions-autoloads helm-config helm-autoloads helm helm-global-bindings helm-easymenu edmacro kmacro helm-core async-bytecomp helm-source helm-multi-match helm-lib dired-async dired-aux dired dired-loaddefs async popup diminish cl-extra help-mode mb-depth server avoid cus-load use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile cconv url-vars cl-loaddefs cl-lib info w3m-load rmc iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 711433 61721) (symbols 48 43557 5) (strings 32 252605 5718) (string-bytes 1 7236951) (vectors 16 87685) (vector-slots 8 1855105 189366) (floats 8 1904 542) (intervals 56 2953 483) (buffers 992 116)) <#secure method=pgpmime mode=sign> -- Thierry ^ permalink raw reply related [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-04 7:02 bug#57572: 29.0.50; Tramp error with tramp-file-name-unify Thierry Volpiatto @ 2022-09-04 11:12 ` Lars Ingebrigtsen 2022-09-04 20:16 ` Thierry Volpiatto 2022-09-10 11:31 ` Michael Albinus 1 sibling, 1 reply; 20+ messages in thread From: Lars Ingebrigtsen @ 2022-09-04 11:12 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 Thierry Volpiatto <thievol@posteo.net> writes: > ;; FIXME: This is a sanity check. When this error > ;; doesn't happen for a while, it can be removed. > - (or (file-name-absolute-p localname) > + (or (file-name-absolute-p (expand-file-name localname)) This patch is the same as removing that sanity check, though, since expand-file-name always returns an absolute name. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-04 11:12 ` Lars Ingebrigtsen @ 2022-09-04 20:16 ` Thierry Volpiatto 0 siblings, 0 replies; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-04 20:16 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 554 bytes --] Lars Ingebrigtsen <larsi@gnus.org> writes: > Thierry Volpiatto <thievol@posteo.net> writes: > >> ;; FIXME: This is a sanity check. When this error >> ;; doesn't happen for a while, it can be removed. >> - (or (file-name-absolute-p localname) >> + (or (file-name-absolute-p (expand-file-name localname)) > > This patch is the same as removing that sanity check, though, since > expand-file-name always returns an absolute name. The purpose of this patch is to show where the problem is... -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-04 7:02 bug#57572: 29.0.50; Tramp error with tramp-file-name-unify Thierry Volpiatto 2022-09-04 11:12 ` Lars Ingebrigtsen @ 2022-09-10 11:31 ` Michael Albinus 2022-09-10 14:53 ` Thierry Volpiatto 2022-09-10 15:20 ` Thierry Volpiatto 1 sibling, 2 replies; 20+ messages in thread From: Michael Albinus @ 2022-09-10 11:31 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 Thierry Volpiatto <thievol@posteo.net> writes: > Hello, Hi Thierry, (sorry for the delayed reply, but I was too busy with changing Tramp to the rx machinery) > with helm-find-files connecting to "/sudo::" I have this error: > > (file-error "File `' must be absolute") > > This because helm connect to tramp as soon the last ":" is entered. Indeed. > Debugger entered--Lisp error: (file-error "File `' must be absolute") > signal(file-error ("File `' must be absolute")) > tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute" "") > tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "") > tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef) > tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:") [...] Well, the reason for the change in Tramp is, that the file name cache must work over absolute file names. Otherwise, it wouldn't be obvious, for with file the cached values of "foo.txt" belong to. This file name could be used in different directories. > The error can be fixed with this patch modifying > `tramp-file-name-unify`: > > diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el > index bb6eeaa7417..171d67b42af 100644 > --- a/lisp/net/tramp.el > +++ b/lisp/net/tramp.el > @@ -1495,7 +1495,7 @@ same connection. Make a copy in order to avoid side effects." > (and (stringp localname) > ;; FIXME: This is a sanity check. When this error > ;; doesn't happen for a while, it can be removed. > - (or (file-name-absolute-p localname) > + (or (file-name-absolute-p (expand-file-name localname)) > (tramp-error > vec 'file-error "File `%s' must be absolute" localname)) > (tramp-compat-file-name-unquote (directory-file-name localname))) No, that's not possible. When `tramp-file-name-unify' is invoked, it is not guaranted that `default-directory' points to a remote file name corresponding to the relative `localname'. The file name must be expanded in time. When applying that patch, I did my best to identify all places in Tramp, where `expand-file-name' must be used for caching purposes. All Tramp test suites passed, but obviously there are more use cases in the wild than Tramp test suite coverage. So I've added `expand-file-name' to even more places in Tramp in the hope, that it fits now for all cases. Pushed to master, could you please check? > It would be great that tramp development takes in account that there is > nowaday many alternatives to find-file/dired that are incremental and > connect automatically as soon as user type. Most errors come from this > and have to be fixed more and more frequently as soon there is changes > in tramp code. In this case, it was a Tramp error which has been fixed with side effects. I'm sorry about thgat it hit you, but error fixes must happen. There is no change in Tramp just for fun, regardless of users. And we're here in Emacs development, master branch, in order to detect such regressions early. That's why the sanity message was added to `tramp-file-name-unify'. > Thanks. Best regards, Michael. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 11:31 ` Michael Albinus @ 2022-09-10 14:53 ` Thierry Volpiatto 2022-09-10 17:37 ` Michael Albinus 2022-09-10 15:20 ` Thierry Volpiatto 1 sibling, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-10 14:53 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 55905 bytes --] Hello Michael and thanks for your answer. Michael Albinus <michael.albinus@gmx.de> writes: > Thierry Volpiatto <thievol@posteo.net> writes: > >> Hello, > > Hi Thierry, > > (sorry for the delayed reply, but I was too busy with changing Tramp to > the rx machinery) No problems. > So I've added `expand-file-name' to even more places in Tramp in the > hope, that it fits now for all cases. Pushed to master, could you please > check? I am using for now the emacs-28 version of tramp-file-name-unify to prevent this error (it is inlined), to reproduce the bug with helm-find-files you have to use: (setq helm-ff--file-accessible-directory-p-fn #'file-accessible-directory-p) And I still have the error, here the backtrace, the tramp log at the end of this message: Debugger entered--Lisp error: (file-error "File `' must be absolute, please report a bug!") signal(file-error ("File `' must be absolute, please report a bug!")) tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute, please report a bug!" "") tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "") tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef) tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:") apply(tramp-sh-handle-file-readable-p "/sudo:root@IPad-S340:") tramp-sh-file-name-handler(file-readable-p "/sudo:root@IPad-S340:") apply(tramp-sh-file-name-handler file-readable-p "/sudo:root@IPad-S340:") tramp-file-name-handler(file-readable-p "/sudo:root@IPad-S340:") file-readable-p("/sudo:root@IPad-S340:") tramp-handle-file-accessible-directory-p("/sudo:root@IPad-S340:") apply(tramp-handle-file-accessible-directory-p "/sudo:root@IPad-S340:") tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:") apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root@IPad-S340:") tramp-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:") file-accessible-directory-p(#("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t))) helm-find-files-get-candidates() apply(helm-find-files-get-candidates nil) helm-apply-functions-from-source(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...) helm-find-files-get-candidates) helm-interpret-value(helm-find-files-get-candidates ((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-get-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-get-cached-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-compute-matches(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm--collect-matches((((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) (13 . helm-ff-RET) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1dc02d7c43ae80>)) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit2 or (...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:Help \\[h...") (header-line . #("C-j: Hit1 Expand Candidate, Hit2..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) (group . helm-files) (migemo . t)))) helm-update() helm-check-new-input("/sudo::") helm-check-minibuffer-input() #f(compiled-function () #<bytecode 0x13c64df807298d0c>)() apply(#f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil) timer-event-handler([t 0 0 10000 repeat #f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil idle 0 nil]) read-from-minibuffer(#("Find files or url: " 0 19 (face helm-minibuffer-prompt)) "/home/thierry/.emacs.d/emacs-config/" (keymap (f12 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c43ae80>)) (f8 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c459e80>)) (f7 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c448e80>)) (f6 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c46fe80>)) (f5 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c47ee80>)) (f4 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4bde80>)) (f3 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4ace80>)) (f2 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4f3e80>)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4e2e80>)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d33cd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d32dd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2aed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2bfd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d240d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d251d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d232d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d223d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d204d75>)) (110 . helm-helm-run-cycle-resume-with-subkeys) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-insert-or-copy) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736bcd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736add75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537372ed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537373fd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737c0d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737d1d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737b2d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737a3d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b5373784d75>)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-scroll-down) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-scroll-up)) (next . helm-next-page) (prior . helm-previous-page) (C-up . helm-follow-action-backward) (C-down . helm-follow-action-forward) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) ...) nil nil nil t) helm-read-from-minibuffer("Find files or url: " "/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$" nil nil nil nil) helm-internal(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil) apply(helm-internal (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)) helm(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil) apply(helm (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)) helm(:sources helm-source-find-files :input "/home/thierry/.emacs.d/emacs-config/" :case-fold-search smart :preselect "^[[:multibyte:] ]*init\\.el$" :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*") helm-find-files-1("/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$") helm-find-files(nil) funcall-interactively(helm-find-files nil) call-interactively(helm-find-files nil nil) command-execute(helm-find-files) > And we're here in Emacs development, master branch, in order to detect > such regressions early. That's why the sanity message was added to > `tramp-file-name-unify'. Ok I understand. Here the tramp backtrace as well if that helps. ;; Emacs: 29.0.50 Tramp: 2.6.0-pre -*- mode: outline; coding: utf-8; -*- ;; Location: /usr/local/share/emacs/29.0.50/lisp/net/tramp.elc Git: master/4cf9c92e27d20da9453f9abe89d84bee5d776329 16:52:31.091698 tramp-get-file-property (10) # backtrace() tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute, please report a bug!" "") tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "") tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef) tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:") apply(tramp-sh-handle-file-readable-p "/sudo:root@IPad-S340:") tramp-sh-file-name-handler(file-readable-p "/sudo:root@IPad-S340:") apply(tramp-sh-file-name-handler file-readable-p "/sudo:root@IPad-S340:") tramp-file-name-handler(file-readable-p "/sudo:root@IPad-S340:") file-readable-p("/sudo:root@IPad-S340:") tramp-handle-file-accessible-directory-p("/sudo:root@IPad-S340:") apply(tramp-handle-file-accessible-directory-p "/sudo:root@IPad-S340:") tramp-sh-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:") apply(tramp-sh-file-name-handler file-accessible-directory-p "/sudo:root@IPad-S340:") tramp-file-name-handler(file-accessible-directory-p "/sudo:root@IPad-S340:") file-accessible-directory-p(#("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t))) helm-find-files-get-candidates() apply(helm-find-files-get-candidates nil) helm-apply-functions-from-source(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...) helm-find-files-get-candidates) helm-interpret-value(helm-find-files-get-candidates ((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-get-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-get-cached-candidates(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm-compute-matches(((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:He...") (header-line . #("C-j: Hit1 Expand Candidate..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) ...)) helm--collect-matches((((name . "Find Files") (resume lambda nil (helm-ff-setup-update-hook) (setq helm-ff-default-directory "/" helm-ff-last-expanded nil)) (header-name closure (t) (name) (concat name ...)) (init closure (t) nil (setq helm-ff-auto-update-flag helm-ff-auto-update-initial-value) (setq helm-ff--auto-update-state helm-ff-auto-update-flag) (helm-set-local-variable ... ...) (require ...)) (candidates . helm-find-files-get-candidates) (update closure (t) nil (remhash helm-ff-default-directory helm-ff--list-directory-cache)) (cleanup . helm-find-files-cleanup) (keymap keymap (4 . helm-ff-persistent-delete) (9) (left . helm-find-files-up-one-level) (right . helm-execute-persistent-action) (127 . helm-helm-ff-delete-char-backward-with-subkeys) (S-f6 . helm-ff-sort-by-ext) (S-f5 . helm-ff-toggle-files-only) (S-f4 . helm-ff-toggle-dirs-only) (S-f3 . helm-ff-sort-by-size) (S-f2 . helm-ff-sort-by-newest) (S-f1 . helm-ff-sort-alpha) (18 . helm-find-files-down-last-level) (31 . helm-ff-undo) (67108922 . helm-ff-complete-tramp-methods) (12 . helm-find-files-up-one-level) (67108911 . helm-ff-run-fd) (C-backspace . helm-ff-run-toggle-auto-update) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (27 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (19 . helm-ff-run-grep) (24 keymap ... ... ... ... ...) (29 . helm-ff-run-toggle-basename) (13 . helm-ff-RET) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1dc02d7c43ae80>)) ...) (action . helm-find-files-actions) (persistent-action-if . helm-find-files-persistent-action-if) (persistent-help . "Hit1 Expand Candidate, Hit2 or (...") (help-message . helm-ff-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-ff-fct helm-ff-maybe-show-thumbnails helm-ff-directories-only helm-ff-files-only helm-ff-sort-candidates helm-ff-icons-transformer) (action-transformer #f(compiled-function (actions candidate) #<bytecode 0x717fd71a559c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a154d9c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f719c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a517c8b1>) #f(compiled-function (actions candidate) #<bytecode 0x71150a1f73ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717fd71a57ec8b1>) #f(compiled-function (actions candidate) #<bytecode 0x717824e9ffec8b1>) helm-find-files-action-transformer) (candidate-number-limit . helm-ff-candidate-number-limit) (volatile . t) (match helm-mm-exact-match helm-mm-match helm-mm-3-migemo-match (lambda ... ...)) (match-on-real . t) (redisplay . identity) (nohighlight . t) (mode-line "File(s)" "\\<helm-map>\\[helm-help]:Help \\[h...") (header-line . #("C-j: Hit1 Expand Candidate, Hit2..." 0 3 ...)) (multimatch . t) (before-init-hook . helm-find-files-before-init-hook) (after-init-hook . helm-find-files-after-init-hook) (group . helm-files) (migemo . t)))) helm-update() helm-check-new-input("/sudo::") helm-check-minibuffer-input() #f(compiled-function () #<bytecode 0x13c64df807298d0c>)() apply(#f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil) timer-event-handler([t 0 0 10000 repeat #f(compiled-function () #<bytecode 0x13c64df807298d0c>) nil idle 0 nil]) read-from-minibuffer(#("Find files or url: " 0 19 (face helm-minibuffer-prompt)) "/home/thierry/.emacs.d/emacs-config/" (keymap (f12 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3b5e80>)) (f11 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c3a4e80>)) (f10 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c42be80>)) (f9 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c43ae80>)) (f8 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c459e80>)) (f7 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c448e80>)) (f6 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c46fe80>)) (f5 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c47ee80>)) (f4 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4bde80>)) (f3 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4ace80>)) (f2 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4f3e80>)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () (interactive nil) #<bytecode 0x1dc02d7c4e2e80>)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d33cd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d32dd75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2aed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d2bfd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d240d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d251d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d232d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d223d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x46027f45d204d75>)) (110 . helm-helm-run-cycle-resume-with-subkeys) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-insert-or-copy) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (24 keymap (57 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736bcd75>)) (56 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53736add75>)) (55 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537372ed75>)) (54 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b537373fd75>)) (53 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737c0d75>)) (52 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737d1d75>)) (51 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737b2d75>)) (50 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b53737a3d75>)) (49 . #f(compiled-function () (interactive nil) #<bytecode -0x4602b5373784d75>)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark-forward) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) (M-next . helm-scroll-other-window) (12 . helm-recenter-top-bottom-other-window) (left . helm-previous-source) (right . helm-next-source) (15 . helm-next-source) (10 . helm-execute-persistent-action) (9 . helm-select-action) (13 . helm-maybe-exit-minibuffer) (7 . helm-keyboard-quit) (22 . helm-scroll-down) (27 keymap (110 . next-history-element) (112 . previous-history-element) (115 . undefined) (5 . helm-display-all-sources) (1 . helm-show-all-candidates-in-source) (85 . helm-unmark-all) (97 . helm-mark-all) (109 . helm-toggle-all-marks) (41 . helm-next-visible-mark) (40 . helm-prev-visible-mark) (91) (32 . helm-toggle-visible-mark-backward) (33554454 . helm-scroll-other-window-down) (25 . helm-scroll-other-window-down) (22 . helm-scroll-other-window) (12 . helm-reposition-window-other-window) (111 . helm-previous-source) (62 . helm-end-of-buffer) (60 . helm-beginning-of-buffer) (118 . helm-scroll-up)) (next . helm-next-page) (prior . helm-previous-page) (C-up . helm-follow-action-backward) (C-down . helm-follow-action-forward) (16 . helm-previous-line) (14 . helm-next-line) (up . helm-previous-line) (down . helm-next-line) ...) nil nil nil t) helm-read-from-minibuffer("Find files or url: " "/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$" nil nil nil nil) helm-internal(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil) apply(helm-internal (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)) helm(helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil) apply(helm (helm-source-find-files "/home/thierry/.emacs.d/emacs-config/" "Find files or url: " nil "^[[:multibyte:] ]*init\\.el$" "*helm find files*" nil nil nil)) helm(:sources helm-source-find-files :input "/home/thierry/.emacs.d/emacs-config/" :case-fold-search smart :preselect "^[[:multibyte:] ]*init\\.el$" :ff-transformer-show-only-basename t :default nil :prompt "Find files or url: " :buffer "*helm find files*") helm-find-files-1("/home/thierry/.emacs.d/emacs-config/" "^[[:multibyte:] ]*init\\.el$") helm-find-files(nil) funcall-interactively(helm-find-files nil) call-interactively(helm-find-files nil nil) command-execute(helm-find-files) 16:52:31.095416 tramp-get-file-property (1) # File error: File `' must be absolute, please report a bug! Find Files IPad-S340 Thanks. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 14:53 ` Thierry Volpiatto @ 2022-09-10 17:37 ` Michael Albinus 2022-09-10 19:55 ` Thierry Volpiatto 2022-09-11 6:49 ` Thierry Volpiatto 0 siblings, 2 replies; 20+ messages in thread From: Michael Albinus @ 2022-09-10 17:37 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 1998 bytes --] Thierry Volpiatto <thievol@posteo.net> writes: Hi Thierry, >> So I've added `expand-file-name' to even more places in Tramp in the >> hope, that it fits now for all cases. Pushed to master, could you please >> check? > > I am using for now the emacs-28 version of tramp-file-name-unify to > prevent this error (it is inlined), to reproduce the bug with > helm-find-files you have to use: > > (setq helm-ff--file-accessible-directory-p-fn > #'file-accessible-directory-p) The version w/o a check will work most of the cases, because the vast majority of file name cache calls use already absolute file names. But there have been wrong cache data sporadically, that's why I have changed to require absolute file names, after I could debug it to the reason (it was a long way to trap it). > And I still have the error, here the backtrace, the tramp log at the end > of this message: > > Debugger entered--Lisp error: (file-error "File `' must be absolute, please report a bug!") > signal(file-error ("File `' must be absolute, please report a bug!")) > tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute, please report a bug!" "") > tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "") > tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef) > tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:") Hmm. Due to my patch, `tramp-sh-handle-file-readable-p' calls definitely `expand-file-name', before it consults the cache via `tramp-get-file-property'. But wait, you are in file name completion. So I guess you have bound `non-essential' to t. In that case, `expand-file-name' expands only, if the connection is established already. That means the Tramp file name cache is useless, when the connection is not established yet, or if `non-essential' is non-nil. Could you pls check whether the appended patch works for you? > Thanks. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: Type: text/x-patch, Size: 5103 bytes --] *** /tmp/ediffH7PJjY 2022-09-10 19:34:21.792552738 +0200 --- /home/albinus/src/tramp/lisp/tramp-cache.el 2022-09-10 19:21:05.239593463 +0200 *************** *** 133,138 **** --- 133,139 ---- (defun tramp-get-file-property (key file property &optional default) "Get the PROPERTY of FILE from the cache context of KEY. Return DEFAULT if not set." + (if non-essential default ;; Unify localname. Remove hop from `tramp-file-name' structure. (setq key (tramp-file-name-unify key file)) (let* ((hash (tramp-get-hash-table key)) *************** *** 167,173 **** (symbol-value var)) 0))) (set var (1+ val)))) ! value)) (add-hook 'tramp-cache-unload-hook (lambda () --- 168,174 ---- (symbol-value var)) 0))) (set var (1+ val)))) ! value))) (add-hook 'tramp-cache-unload-hook (lambda () *************** *** 178,183 **** --- 179,185 ---- (defun tramp-set-file-property (key file property value) "Set the PROPERTY of FILE to VALUE, in the cache context of KEY. Return VALUE." + (if non-essential value ;; Unify localname. Remove hop from `tramp-file-name' structure. (setq key (tramp-file-name-unify key file)) (let ((hash (tramp-get-hash-table key))) *************** *** 192,198 **** (symbol-value var)) 0))) (set var (1+ val)))) ! value)) (add-hook 'tramp-cache-unload-hook (lambda () --- 194,200 ---- (symbol-value var)) 0))) (set var (1+ val)))) ! value))) (add-hook 'tramp-cache-unload-hook (lambda () *************** *** 208,223 **** ;;;###tramp-autoload (defun tramp-flush-file-property (key file property) "Remove PROPERTY of FILE in the cache context of KEY." ;; Unify localname. Remove hop from `tramp-file-name' structure. (setq key (tramp-file-name-unify key file)) (remhash property (tramp-get-hash-table key)) (tramp-message key 8 "%s %s" (tramp-file-name-localname key) property) (when (>= tramp-verbose 10) (let ((var (intern (concat "tramp-cache-set-count-" property)))) ! (makunbound var)))) (defun tramp-flush-file-upper-properties (key file) "Remove some properties of FILE's upper directory." (when (file-name-absolute-p file) ;; `file-name-directory' can return nil, for example for "~". (when-let ((file (file-name-directory file)) --- 210,227 ---- ;;;###tramp-autoload (defun tramp-flush-file-property (key file property) "Remove PROPERTY of FILE in the cache context of KEY." + (unless non-essential ;; Unify localname. Remove hop from `tramp-file-name' structure. (setq key (tramp-file-name-unify key file)) (remhash property (tramp-get-hash-table key)) (tramp-message key 8 "%s %s" (tramp-file-name-localname key) property) (when (>= tramp-verbose 10) (let ((var (intern (concat "tramp-cache-set-count-" property)))) ! (makunbound var))))) (defun tramp-flush-file-upper-properties (key file) "Remove some properties of FILE's upper directory." + (unless non-essential (when (file-name-absolute-p file) ;; `file-name-directory' can return nil, for example for "~". (when-let ((file (file-name-directory file)) *************** *** 229,239 **** (rx bos (| "directory-" "file-name-all-completions" "file-entries")) property) ! (tramp-flush-file-property key file property)))))) ;;;###tramp-autoload (defun tramp-flush-file-properties (key file) "Remove all properties of FILE in the cache context of KEY." (let ((truename (tramp-get-file-property key file "file-truename"))) ;; Unify localname. Remove hop from `tramp-file-name' structure. (setq key (tramp-file-name-unify key file)) --- 233,244 ---- (rx bos (| "directory-" "file-name-all-completions" "file-entries")) property) ! (tramp-flush-file-property key file property))))))) ;;;###tramp-autoload (defun tramp-flush-file-properties (key file) "Remove all properties of FILE in the cache context of KEY." + (unless non-essential (let ((truename (tramp-get-file-property key file "file-truename"))) ;; Unify localname. Remove hop from `tramp-file-name' structure. (setq key (tramp-file-name-unify key file)) *************** *** 244,250 **** (not (string-equal file (directory-file-name truename)))) (tramp-flush-file-properties key truename)) ;; Remove selected properties of upper directory. ! (tramp-flush-file-upper-properties key file))) ;;;###tramp-autoload (defun tramp-flush-directory-properties (key directory) --- 249,255 ---- (not (string-equal file (directory-file-name truename)))) (tramp-flush-file-properties key truename)) ;; Remove selected properties of upper directory. ! (tramp-flush-file-upper-properties key file)))) ;;;###tramp-autoload (defun tramp-flush-directory-properties (key directory) ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 17:37 ` Michael Albinus @ 2022-09-10 19:55 ` Thierry Volpiatto 2022-09-12 4:34 ` Richard Stallman 2022-09-11 6:49 ` Thierry Volpiatto 1 sibling, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-10 19:55 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 219 bytes --] Michael Albinus <michael.albinus@gmx.de> writes: > Could you pls check whether the appended patch works for you? Could you send a git based patch? I don't know how to apply this one. Thanks. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 19:55 ` Thierry Volpiatto @ 2022-09-12 4:34 ` Richard Stallman 2022-09-12 4:43 ` Thierry Volpiatto 0 siblings, 1 reply; 20+ messages in thread From: Richard Stallman @ 2022-09-12 4:34 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: michael.albinus, 57572 [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] You can apply a patch by running patch < patchfile in the directory where the source files to be patched are found. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-12 4:34 ` Richard Stallman @ 2022-09-12 4:43 ` Thierry Volpiatto 0 siblings, 0 replies; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-12 4:43 UTC (permalink / raw) To: rms; +Cc: michael.albinus, 57572 [-- Attachment #1: Type: text/plain, Size: 198 bytes --] Richard Stallman <rms@gnu.org> writes: > You can apply a patch by running > patch < patchfile > in the directory where the source files to be patched are found. Thanks. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 17:37 ` Michael Albinus 2022-09-10 19:55 ` Thierry Volpiatto @ 2022-09-11 6:49 ` Thierry Volpiatto 2022-09-11 8:18 ` Michael Albinus 1 sibling, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-11 6:49 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 669 bytes --] Michael Albinus <michael.albinus@gmx.de> writes: > But wait, you are in file name completion. Yes, but not sure tramp detects a "file name completion" here as it is not a standard completion used here. > So I guess you have bound `non-essential' to t. In that case, > `expand-file-name' expands only, if the connection is established > already. I have now bound non-essential to nil _before_ calling file-accessible-directory-p and I have no error. Perhaps it is the right way to do? Note that the tramp process is not detected (nil), even if all work fine: Tramp: Opening connection nil for root@IPad-S340 using sudo...done -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 6:49 ` Thierry Volpiatto @ 2022-09-11 8:18 ` Michael Albinus 2022-09-11 8:50 ` Thierry Volpiatto 2022-09-11 10:14 ` Thierry Volpiatto 0 siblings, 2 replies; 20+ messages in thread From: Michael Albinus @ 2022-09-11 8:18 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 Thierry Volpiatto <thievol@posteo.net> writes: Hi Thierry, >> But wait, you are in file name completion. > > Yes, but not sure tramp detects a "file name completion" here as it is > not a standard completion used here. Tramp doesn't need to detect that you're in file name completion or whatever, there are some functions to be called depending on the file name syntax you pass as arguments, that's all. >> So I guess you have bound `non-essential' to t. In that case, >> `expand-file-name' expands only, if the connection is established >> already. > > I have now bound non-essential to nil _before_ calling > file-accessible-directory-p and I have no error. > Perhaps it is the right way to do? non-essential is a mean to tell Tramp, that it shouldn't open a connection when it isn't established yet. That's why you bind it in helm to t. Of course it will work when you don't bind it. But then, there are other problems. The patch I've shown to you yesterday solves your helm-find-files case, but the Tramp testsuite fails. I'm analyzing what's up. Best regards, Michael. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 8:18 ` Michael Albinus @ 2022-09-11 8:50 ` Thierry Volpiatto 2022-09-11 13:08 ` Michael Albinus 2022-09-11 10:14 ` Thierry Volpiatto 1 sibling, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-11 8:50 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 1525 bytes --] Hello Michael, Michael Albinus <michael.albinus@gmx.de> writes: > Thierry Volpiatto <thievol@posteo.net> writes: > > Hi Thierry, > >>> But wait, you are in file name completion. >> >> Yes, but not sure tramp detects a "file name completion" here as it is >> not a standard completion used here. > > Tramp doesn't need to detect that you're in file name completion or > whatever, there are some functions to be called depending on the file > name syntax you pass as arguments, that's all. > >>> So I guess you have bound `non-essential' to t. In that case, >>> `expand-file-name' expands only, if the connection is established >>> already. >> >> I have now bound non-essential to nil _before_ calling >> file-accessible-directory-p and I have no error. >> Perhaps it is the right way to do? > > non-essential is a mean to tell Tramp, that it shouldn't open a > connection when it isn't established yet. Yes, it is what I always understood but I am now confused because the connection is trigerred by file-accessible-directory-p even with non-essential==t. > That's why you bind it in helm to t. Of course it will work when you > don't bind it. It is bound to t on top but it is nil in helm-find-files-get-candidates. > But then, there are other problems. Yes of course but only if I bind it on top, isn't it? > The patch I've shown to you yesterday solves your helm-find-files > case, but the Tramp testsuite fails. I'm analyzing what's up. Ok thanks. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 8:50 ` Thierry Volpiatto @ 2022-09-11 13:08 ` Michael Albinus 2022-09-11 14:29 ` Thierry Volpiatto 0 siblings, 1 reply; 20+ messages in thread From: Michael Albinus @ 2022-09-11 13:08 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 Thierry Volpiatto <thievol@posteo.net> writes: > Hello Michael, Hi Thierry, >> non-essential is a mean to tell Tramp, that it shouldn't open a >> connection when it isn't established yet. > > Yes, it is what I always understood but I am now confused because the > connection is trigerred by file-accessible-directory-p even with > non-essential==t. Well, non-essential is not checked for *all* basic functions. Its most important use is to prevent expand-file-name and file-exists-p from action. See function tramp-connectable-p, and its use in tramp.el and tramp-sh.el. Why it has triggered file-accessible-directory-p to go remote I cannot analyze w/o traces. >> That's why you bind it in helm to t. Of course it will work when you >> don't bind it. > > It is bound to t on top but it is nil in helm-find-files-get-candidates. Well, this lets Tramp connect. >> But then, there are other problems. > > Yes of course but only if I bind it on top, isn't it? Wherever you bind it. If a Tramp function is called, and non-essential is nil, Tramp is likely to go remote. If you want it, fine. Best regards, Michael. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 13:08 ` Michael Albinus @ 2022-09-11 14:29 ` Thierry Volpiatto 0 siblings, 0 replies; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-11 14:29 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 336 bytes --] Michael Albinus <michael.albinus@gmx.de> writes: > Well, non-essential is not checked for *all* basic functions. Its most > important use is to prevent expand-file-name and file-exists-p from > action. See function tramp-connectable-p, and its use in tramp.el and > tramp-sh.el. Thanks to clarify its usage. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 8:18 ` Michael Albinus 2022-09-11 8:50 ` Thierry Volpiatto @ 2022-09-11 10:14 ` Thierry Volpiatto 2022-09-11 12:58 ` Michael Albinus 1 sibling, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-11 10:14 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 307 bytes --] Michael Albinus <michael.albinus@gmx.de> writes: > The patch I've shown to you yesterday solves your helm-find-files > case, Finally could apply the patch and I confirm it fixes the error. > but the Tramp testsuite fails. I'm analyzing what's up. > > Best regards, Michael. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 10:14 ` Thierry Volpiatto @ 2022-09-11 12:58 ` Michael Albinus 2022-09-11 14:25 ` Thierry Volpiatto 0 siblings, 1 reply; 20+ messages in thread From: Michael Albinus @ 2022-09-11 12:58 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 Thierry Volpiatto <thievol@posteo.net> writes: Hi Thierry, >> The patch I've shown to you yesterday solves your helm-find-files >> case, > > Finally could apply the patch and I confirm it fixes the error. Thanks for the feedback. >> but the Tramp testsuite fails. I'm analyzing what's up. Finally, I've fixed this. I don't check any longer for `non-essential'. Instead, the Tramp cache is disabled when it is invoked with a relative file name. This seems to be more robust, and it passes both helm-find-files and the Tramp testsuite check. Pushed to master. Could you give it a try? Best regards, Michael. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 12:58 ` Michael Albinus @ 2022-09-11 14:25 ` Thierry Volpiatto 2022-09-11 16:29 ` Michael Albinus 0 siblings, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-11 14:25 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 453 bytes --] Michael Albinus <michael.albinus@gmx.de> writes: > Finally, I've fixed this. I don't check any longer for `non-essential'. > Instead, the Tramp cache is disabled when it is invoked with a relative > file name. This seems to be more robust, and it passes both > helm-find-files and the Tramp testsuite check. > > Pushed to master. Could you give it a try? It is working fine now, no error. Thanks you very much for this. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-11 14:25 ` Thierry Volpiatto @ 2022-09-11 16:29 ` Michael Albinus 0 siblings, 0 replies; 20+ messages in thread From: Michael Albinus @ 2022-09-11 16:29 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572-done Version: 29.1 Thierry Volpiatto <thievol@posteo.net> writes: Hi Thierry, >> Finally, I've fixed this. I don't check any longer for `non-essential'. >> Instead, the Tramp cache is disabled when it is invoked with a relative >> file name. This seems to be more robust, and it passes both >> helm-find-files and the Tramp testsuite check. >> >> Pushed to master. Could you give it a try? > > It is working fine now, no error. Thanks, I'm closing the bug. > Thanks you very much for this. Best regards, Michael. ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 11:31 ` Michael Albinus 2022-09-10 14:53 ` Thierry Volpiatto @ 2022-09-10 15:20 ` Thierry Volpiatto 2022-09-10 17:44 ` Michael Albinus 1 sibling, 1 reply; 20+ messages in thread From: Thierry Volpiatto @ 2022-09-10 15:20 UTC (permalink / raw) To: Michael Albinus; +Cc: 57572 [-- Attachment #1: Type: text/plain, Size: 1385 bytes --] Michael Albinus <michael.albinus@gmx.de> writes: >> This because helm connect to tramp as soon the last ":" is entered. > > Indeed. > >> Debugger entered--Lisp error: (file-error "File `' must be absolute") >> signal(file-error ("File `' must be absolute")) >> tramp-error((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) file-error "File `%s' must be absolute" "") >> tramp-file-name-unify((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "") >> tramp-get-file-property((tramp-file-name "sudo" "root" nil "IPad-S340" nil "" nil) "" "file-readable-p" undef) >> tramp-sh-handle-file-readable-p("/sudo:root@IPad-S340:") More exactly, when helm-find-files starts with "/sudo::" and the tramp connection is not yet enabled, we have: (file-remote-p "/sudo::" 'localname) => "" and (helm-ff-set-pattern "/sudo::") => #("/sudo:root@IPad-S340:" 6 10 (tramp-default t) 11 20 (tramp-default t)) then this value is passed to file-accessible-directory-p and we have the error. I tried this and it seems to work without error: (file-accessible-directory-p (if (string= (file-remote-p path 'localname) "") ;; First connection (concat path "/") ;; path == "/sudo:root@IPad-S340:" (see above) path)) Not sure if it is safe with other methods though, didn't try. Hope that helps. Thanks. -- Thierry [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 686 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#57572: 29.0.50; Tramp error with tramp-file-name-unify 2022-09-10 15:20 ` Thierry Volpiatto @ 2022-09-10 17:44 ` Michael Albinus 0 siblings, 0 replies; 20+ messages in thread From: Michael Albinus @ 2022-09-10 17:44 UTC (permalink / raw) To: Thierry Volpiatto; +Cc: 57572 Thierry Volpiatto <thievol@posteo.net> writes: Hi Thierry, > I tried this and it seems to work without error: > > (file-accessible-directory-p > (if (string= (file-remote-p path 'localname) "") > ;; First connection > (concat path "/") ;; path == "/sudo:root@IPad-S340:" (see above) > path)) > > Not sure if it is safe with other methods though, didn't try. No, in general "/method:host:" isn't equal to "/method:host:/". So the cache values would be kept for the wrong file. > Thanks. Best regards, Michael. ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2022-09-12 4:43 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-09-04 7:02 bug#57572: 29.0.50; Tramp error with tramp-file-name-unify Thierry Volpiatto 2022-09-04 11:12 ` Lars Ingebrigtsen 2022-09-04 20:16 ` Thierry Volpiatto 2022-09-10 11:31 ` Michael Albinus 2022-09-10 14:53 ` Thierry Volpiatto 2022-09-10 17:37 ` Michael Albinus 2022-09-10 19:55 ` Thierry Volpiatto 2022-09-12 4:34 ` Richard Stallman 2022-09-12 4:43 ` Thierry Volpiatto 2022-09-11 6:49 ` Thierry Volpiatto 2022-09-11 8:18 ` Michael Albinus 2022-09-11 8:50 ` Thierry Volpiatto 2022-09-11 13:08 ` Michael Albinus 2022-09-11 14:29 ` Thierry Volpiatto 2022-09-11 10:14 ` Thierry Volpiatto 2022-09-11 12:58 ` Michael Albinus 2022-09-11 14:25 ` Thierry Volpiatto 2022-09-11 16:29 ` Michael Albinus 2022-09-10 15:20 ` Thierry Volpiatto 2022-09-10 17:44 ` Michael Albinus
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.