"Kirill A. Korinsky" <kir...@korins.ky> writes: > Greetings,
Hi Kirill, > When I run emacs your way I have: > > In *Messages* >> For information about GNU Emacs and the GNU system, type C-h C-a. >> Tramp: Opening connection nil for playground.island.local using ssh...failed >> signal: Wrong type argument: "listp /bin/sh:" > > and I've attached tramp.log Thanks a lot, this has helped. In the debug buffer we see what happens: --8<---------------cut here---------------start------------->8--- 22:48:20.976768 tramp-send-command (6) # tramp_bundle_read_file_names <<'36584af1a5124300cf63739980e7d186' /usr/bin /bin /usr/sbin /sbin /usr/X11R6/bin /usr/local/bin /usr/local/sbin /local/bin /local/freeware/bin /local/gnu/bin /usr/freeware/bin /usr/pkg/bin /usr/contrib/bin /opt/bin /opt/sbin /opt/local/bin 36584af1a5124300cf63739980e7d186 22:48:21.035464 tramp-wait-for-regexp (6) # /bin/sh: can't create temporary file /tmp/shZPInbtKR: Permission denied ///8056ae9d33677d9550fbd457130ab698#$ 22:48:21.049964 tramp-bundle-read-file-names (10) # backtrace() tramp-signal-hook-function(wrong-type-argument (listp /bin/sh:)) tramp-bundle-read-file-names((tramp-file-name "ssh" nil nil "playground.island.local" nil "" nil) ("/usr/bin" "/bin" "/usr/sbin" "/sbin" "/usr/X11R6/bin" "/usr/local/bin" "/usr/local/sbin" "/local/bin" "/local/freeware/bin" "/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin" "/opt/bin" "/opt/sbin" "/opt/local/bin")) ... --8<---------------cut here---------------end--------------->8--- The error "/bin/sh: can't create temporary file /tmp/shZPInbtKR: Permission denied" isn't propagated properly by Tramp. Could you, please, try the appended patch? There shall be a better error message. > wbr, Kirill Best regards, Michael.
diff --git a/lisp/tramp-sh.el b/lisp/tramp-sh.el index 6489f473..8ec9467a 100644 --- a/lisp/tramp-sh.el +++ b/lisp/tramp-sh.el @@ -3652,20 +3652,20 @@ filled are described in `tramp-bundle-read-file-names'." (dolist (elt - (ignore-errors + (with-current-buffer (tramp-get-connection-buffer vec) ;; We cannot use `tramp-send-command-and-read', because ;; this does not cooperate well with heredoc documents. - (tramp-send-command - vec - (format - "tramp_bundle_read_file_names <<'%s'\n%s\n%s\n" - tramp-end-of-heredoc - (mapconcat #'tramp-shell-quote-argument files "\n") - tramp-end-of-heredoc)) - (with-current-buffer (tramp-get-connection-buffer vec) - ;; Read the expression. - (goto-char (point-min)) - (read (current-buffer))))) + (unless (tramp-send-command-and-check + vec + (format + "tramp_bundle_read_file_names <<'%s'\n%s\n%s\n" + tramp-end-of-heredoc + (mapconcat #'tramp-shell-quote-argument files "\n") + tramp-end-of-heredoc)) + (tramp-error vec 'file-error "%s" (tramp-get-buffer-string))) + ;; Read the expression. + (goto-char (point-min)) + (read (current-buffer)))) (tramp-set-file-property vec (car elt) "file-exists-p" (nth 1 elt)) (tramp-set-file-property vec (car elt) "file-readable-p" (nth 2 elt))