Subject: bug#36969: closed (Re: bug#36969: 27.0.50; tramp ftp fails)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 09 Aug 2019 07:28:02 +0000

Your bug report

#36969: 27.0.50; tramp ftp fails (was Re: master 7aaf500: Stronger check for Tramp method)

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36969: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36969
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#36969: 27.0.50; tramp ftp fails
From: Michael Albinus <[email-masked]>
To: Katsumi Yamaoka <[email-masked]>
Cc: [email-masked]
Date: Fri, 09 Aug 2019 09:27:08 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Katsumi Yamaoka <[email-masked]> writes:

> Works fine as before.

Thanks for the feedback, I'm closing the bug.

> Thank you!

Best regards, Michael.

Subject: 27.0.50; tramp ftp fails (was Re: master 7aaf500: Stronger check for Tramp method)
From: Katsumi Yamaoka <[email-masked]>
To: [email-masked]
Cc: Michael Albinus <[email-masked]>
Date: Thu, 08 Aug 2019 16:33:57 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

I'm a bit surprised that I've never used tramp ftp for two months. ;-)
But yesterday, I found it doesn't work.  A recipe is here:

(require 'tramp)
(tramp-change-syntax 'simplified)
(setq tramp-default-method "ftp")
(setq ange-ftp-try-passive-mode t)
(setq debug-on-error t)
(dired "/jpl.org:~/")

Where "/jpl.org:~/" is my home directory in the jpl.org host,
user name and password are set in the ~/.netrc file as follows:

machine jpl.org login MyAcountName password MyPassword

The symptom is that it fails with the message:

tramp-error: Method `' is not known.

A Lisp backtrace is attached below, and a workaround I found to
make it work is to revert your change made in tramp.el with the
revno 7aaf500:

On Tue, 04 Jun 2019 06:51:53 -0400, Michael Albinus wrote:
> branch: master
> commit 7aaf500701be3b51c686b7d86c9b505ef5fa9b8f
> Author: Michael Albinus <[email-masked]>
> Commit: Michael Albinus <[email-masked]>

>     Stronger check for Tramp method
[...]
>     * lisp/net/tramp.el (tramp-dissect-file-name): Check for proper method.
[...]
> --- a/lisp/net/tramp.el
> +++ b/lisp/net/tramp.el
> @@ -1435,6 +1435,12 @@ default values are used."
>  	    (setq v (make-tramp-file-name
>  		     :method method :user user :domain domain :host host
>  		     :port port :localname localname :hop hop))
> +	  ;; The method must be known.
> +	  (unless (or (tramp-completion-mode-p)
> +		      (string-equal method tramp-default-method-marker)
> +		      (assoc method tramp-methods))
> +	    (tramp-user-error
> +	     v "Method `%s' is not known." method))
>  	  ;; Only some methods from tramp-sh.el do support multi-hops.
>  	  (when (and
>  		 hop

Thanks in advance.
Regards,

In GNU Emacs 27.0.50 (build 1, x86_64-pc-cygwin, GTK+ Version 3.22.28)
 of 2019-08-08 built on localhost
Windowing system distributor 'The Cygwin/X Project', version 11.0.12004000

Debugger entered--Lisp error: (user-error "Method `' is not known.")
  signal(user-error ("Method `' is not known."))
  tramp-error((tramp-file-name "" nil nil "jpl.org" nil #("/" 0 1 (fontified nil front-sticky (field inhibit-line-move-field-capture) rear-nonsticky t field output inhibit-line-move-field-capture t)) nil) user-error "Method `%s' is not known." "")
  apply(tramp-error (tramp-file-name "" nil nil "jpl.org" nil #("/" 0 1 (fontified nil front-sticky (field inhibit-line-move-field-capture) rear-nonsticky t field output inhibit-line-move-field-capture t)) nil) user-error "Method `%s' is not known." "")
  tramp-user-error((tramp-file-name "" nil nil "jpl.org" nil #("/" 0 1 (fontified nil front-sticky (field inhibit-line-move-field-capture) rear-nonsticky t field output inhibit-line-move-field-capture t)) nil) "Method `%s' is not known." "")
  tramp-dissect-file-name(#("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)) t)
  tramp-ftp-file-name-handler(file-exists-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  apply(tramp-ftp-file-name-handler file-exists-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  tramp-file-name-handler(file-exists-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  file-name-case-insensitive-p(#("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  apply(file-name-case-insensitive-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  ange-ftp-run-real-handler(file-name-case-insensitive-p (#("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil))))
  ange-ftp-hook-function(file-name-case-insensitive-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  apply(ange-ftp-hook-function file-name-case-insensitive-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  tramp-ftp-file-name-handler(file-name-case-insensitive-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  apply(tramp-ftp-file-name-handler file-name-case-insensitive-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  tramp-file-name-handler(file-name-case-insensitive-p #("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  file-name-case-insensitive-p(#("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  abbreviate-file-name(#("/jpl.org:/" 9 10 (inhibit-line-move-field-capture t field output rear-nonsticky t front-sticky (field inhibit-line-move-field-capture) fontified nil)))
  dired-noselect("/jpl.org:~/" nil)
  #f(compiled-function (dirname &optional switches) "\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.\nOptional second argument SWITCHES specifies the `ls' options used.\n(Interactively, use a prefix argument to be able to specify SWITCHES.)\n\nIf DIRNAME is a string, Dired displays a list of files in DIRNAME (which\nmay also have shell wildcards appended to select certain files).\n\nIf DIRNAME is a cons, its first element is taken as the directory name\nand the rest as an explicit list of files to make directory entries for.\nIn this case, SWITCHES are applied to each of the files separately, and\ntherefore switches that control the order of the files in the produced\nlisting have no effect.\n\n\\<dired-mode-map>You can flag files for deletion with \\[dired-flag-file-deletion] and then\ndelete them by typing \\[dired-do-flagged-delete].\nType \\[describe-mode] after entering Dired for more info.\n\nIf DIRNAME is already in a Dired buffer, that buffer is used without refresh." (interactive (dired-read-dir-and-switches "")) #<bytecode 0x180165f55>)("/jpl.org:~/" nil)
  ls-lisp--dired(#f(compiled-function (dirname &optional switches) "\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.\nOptional second argument SWITCHES specifies the `ls' options used.\n(Interactively, use a prefix argument to be able to specify SWITCHES.)\n\nIf DIRNAME is a string, Dired displays a list of files in DIRNAME (which\nmay also have shell wildcards appended to select certain files).\n\nIf DIRNAME is a cons, its first element is taken as the directory name\nand the rest as an explicit list of files to make directory entries for.\nIn this case, SWITCHES are applied to each of the files separately, and\ntherefore switches that control the order of the files in the produced\nlisting have no effect.\n\n\\<dired-mode-map>You can flag files for deletion with \\[dired-flag-file-deletion] and then\ndelete them by typing \\[dired-do-flagged-delete].\nType \\[describe-mode] after entering Dired for more info.\n\nIf DIRNAME is already in a Dired buffer, that buffer is used without refresh." (interactive (dired-read-dir-and-switches "")) #<bytecode 0x180165f55>) "/jpl.org:~/")
  apply(ls-lisp--dired #f(compiled-function (dirname &optional switches) "\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it.\nOptional second argument SWITCHES specifies the `ls' options used.\n(Interactively, use a prefix argument to be able to specify SWITCHES.)\n\nIf DIRNAME is a string, Dired displays a list of files in DIRNAME (which\nmay also have shell wildcards appended to select certain files).\n\nIf DIRNAME is a cons, its first element is taken as the directory name\nand the rest as an explicit list of files to make directory entries for.\nIn this case, SWITCHES are applied to each of the files separately, and\ntherefore switches that control the order of the files in the produced\nlisting have no effect.\n\n\\<dired-mode-map>You can flag files for deletion with \\[dired-flag-file-deletion] and then\ndelete them by typing \\[dired-do-flagged-delete].\nType \\[describe-mode] after entering Dired for more info.\n\nIf DIRNAME is already in a Dired buffer, that buffer is used without refresh." (interactive (dired-read-dir-and-switches "")) #<bytecode 0x180165f55>) "/jpl.org:~/")
  dired("/jpl.org:~/")
  eval((dired "/jpl.org:~/") t)
  eval-expression((dired "/jpl.org:~/") nil nil 127)
  funcall-interactively(eval-expression (dired "/jpl.org:~/") nil nil 127)
  call-interactively(eval-expression nil nil)
  command-execute(eval-expression)