tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tramp (2.0.29); erroneous error message: File is a symlink to a none


From: Kai Großjohann
Subject: Re: tramp (2.0.29); erroneous error message: File is a symlink to a nonexistent target
Date: Mon, 31 Mar 2003 22:40:35 +0200
User-agent: Gnus/5.090017 (Oort Gnus v0.17) Emacs/21.3.50 (gnu/linux)

address@hidden writes:

> I have this directory listing in dired:
>
>     /address@hidden:/app/lsidsp02/cronusprod:
>     total 1040
>     [...]
>     drwxrwxr-x   3 cronusprod cronus       512 Sep 11  2002 data
>     [...]
>     lrwxrwxrwx   1 cronusprod cronus        11 Mar 28 11:33 var -> data/idcnae
>     lrwxrwxrwx   1 cronusprod cronus        13 Mar 28 11:31 var- -> 
> ./data/idcnae
>     lrwxrwxrwx   1 cronusprod cronus        36 Jul  4  2002 var-- -> 
> /app/lsidsp02/cronusprod/data/idcnae
>
> This is a part of the customization buffer for tramp-default-method-alist:
>
>     Tramp Default Method Alist: Hide
>     INS DEL List:
>                 Host regexp: lsidsp02.str.allianz
>                 User regexp: cronusprod
>                 Method: ftp
>
> If I try to visit var or var- or var--, I always get this,
> and I did not have this problem when using old ftp-ange:
>
>     dired-find-file: File is a symlink to a nonexistent target

Before Michael's fix, I also got that.  But now I get something weird
instead.

This directory listing:

  /ftp:address@hidden:/home/kai/tmp/ange-ftp-test:
  total 8
  drwxrwx---    2 kai      kai          4096 Mar 31 23:09 .
  drwxrwx---    5 kai      kai          4096 Mar 31 23:02 ..
  lrwxrwxrwx    1 kai      kai             7 Mar 31 23:02 x -> ../auto
  lrwxrwxrwx    1 kai      kai             4 Mar 31 23:03 y -> /tmp
  lrwxrwxrwx    1 kai      kai             4 Mar 31 23:05 y- -> /tmp
  lrwxrwxrwx    1 kai      kai             4 Mar 31 23:05 y-- -> /tmp
  lrwxrwxrwx    1 kai      kai            11 Mar 31 23:09 z -> /tmp/kaifoo

Then I hit `f' on the `z' line.  Then I get a prompt for "passwd for
address@hidden"!

Using debug-on-quit and hitting C-g at that spot shows that
something got really confused: Emacs is thinking the name is
different than it should be.  It's constructing user kai at host ftp
from the name /ftp:address@hidden:/home...

It seems that ange-ftp-name-format has the right value, though.

What's going on?

I traced it with edebug, but couldn't find anything.  These functions
are invoked so _often_, I can't make out which is the important
function call.

Debugger entered--Lisp error: (quit)
  read-passwd("passwd for address@hidden (default same as address@hidden): " 
nil "**CENSORED**")
  (if other (read-passwd (format "passwd for address@hidden (default same as 
address@hidden): " user host user other) nil (ange-ftp-lookup-passwd other 
user)) (read-passwd (format "Password for address@hidden: " user host)))
  (let* ((other ...) (passwd ...)) (ange-ftp-set-passwd host user passwd) 
passwd)
  (cond ((ange-ftp-lookup-passwd host user)) ((and ... 
ange-ftp-default-password ...) ange-ftp-default-password) ((and ... 
ange-ftp-netrc-default-password ...) ange-ftp-netrc-default-password) ((and ... 
ange-ftp-generate-anonymous-password) (if ... 
ange-ftp-generate-anonymous-password user-mail-address)) (t (let* ... ... 
passwd)))
  ange-ftp-get-passwd("ftp" "kai")
  (ange-ftp-quote-string (ange-ftp-get-passwd host user))
  (let ((pass ...) (account ...)) (setq proc (ange-ftp-start-process host user 
name)) (if (and ... ange-ftp-gateway-host) (ange-ftp-smart-login host user pass 
account proc) (ange-ftp-normal-login host user pass account proc)) 
(ange-ftp-guess-hash-mark-size proc) (ange-ftp-guess-host-type host user) (let* 
(... ...) (if passive ...)) (let (... ...) (run-hooks ...)))
  (if (and proc (memq ... ...)) proc (if proc (delete-process proc)) (let (... 
...) (setq proc ...) (if ... ... ...) (ange-ftp-guess-hash-mark-size proc) 
(ange-ftp-guess-host-type host user) (let* ... ...) (let ... ...)) proc)
  (let* ((name ...) (proc ...)) (if (and proc ...) proc (if proc ...) (let ... 
... ... ... ... ... ...) proc))
  ange-ftp-get-process("ftp" "kai")
  (and user (ange-ftp-get-process host user) (eq host ange-ftp-host-cache))
  (cond ((null host) (quote unix)) ((eq host ange-ftp-host-cache) 
ange-ftp-host-type-cache) ((and user ... ...) ange-ftp-host-type-cache) (t 
(setq ange-ftp-host-cache host ange-ftp-host-type-cache ...)))
  ange-ftp-host-type("ftp" "kai")
  (let* ((host-type ...) (fix-name-func ...) (key ...) (res ...)) (or res 
(progn ... ... ... res)))
  ange-ftp-expand-dir("ftp" "kai" "~")
  (let ((dir ...)) (if dir (setq name ...) (error "Unable to obtain CWD")))
  (cond ((string-match "^/" name) name) ((string-match "^~[^/]*" name) (let* 
... ...)) (t (let ... ...)))
  (let ((host ...) (user ...) (name ...)) (cond (... name) (... ...) (t ...)) 
(if (not ...) (progn ... ...)) (ange-ftp-replace-name-component n name))
  (if parsed (let (... ... ...) (cond ... ... ...) (if ... ...) 
(ange-ftp-replace-name-component n name)) (if (eq ... 47) 
(ange-ftp-real-expand-file-name n) (ange-ftp-real-expand-file-name ... ...)))
  (let ((parsed ...)) (if parsed (let ... ... ... ...) (if ... ... ...)))
  
ange-ftp-canonize-filename("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z")
  (cond ((eq ... 126) (ange-ftp-real-expand-file-name name)) ((eq ... 47) 
(ange-ftp-canonize-filename name)) ((and ... ...) (ange-ftp-canonize-filename 
name)) ((and ... ...) (ange-ftp-real-expand-file-name name default)) ((zerop 
...) (ange-ftp-canonize-filename default)) ((ange-ftp-canonize-filename ...)))
  (progn (setq default (or default default-directory)) (cond (... ...) (... 
...) (... ...) (... ...) (... ...) (...)))
  (unwind-protect (progn (setq default ...) (cond ... ... ... ... ... ...)) 
(set-match-data save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ... ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (setq default (or default default-directory)) (cond (... 
...) (... ...) (... ...) (... ...) (... ...) (...)))
  ange-ftp-expand-file-name("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" 
nil)
  apply(ange-ftp-expand-file-name 
("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil))
  (progn (apply fn args))
  (unwind-protect (progn (apply fn args)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (apply fn args))
  (if fn (save-match-data (apply fn args)) (ange-ftp-run-real-handler operation 
args))
  (let ((fn ...)) (if fn (save-match-data ...) (ange-ftp-run-real-handler 
operation args)))
  ange-ftp-hook-function(expand-file-name 
"/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil)
  apply(ange-ftp-hook-function expand-file-name 
("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil))
  (let* ((inhibit-file-name-handlers ...) (inhibit-file-name-operation 
operation)) (apply (quote ange-ftp-hook-function) operation args))
  (cond ((and ... ...) (apply ... operation args)) (t (let* ... ...)))
  (let ((ange-ftp-name-format ...)) (cond (... ...) (t ...)))
  (progn (or (boundp ...) (require ...)) (let (...) (cond ... ...)))
  (unwind-protect (progn (or ... ...) (let ... ...)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ... ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (or (boundp ...) (require ...)) (let (...) (cond ... ...)))
  tramp-ftp-file-name-handler(expand-file-name 
"/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil)
  apply(tramp-ftp-file-name-handler expand-file-name 
("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil))
  (cond (foreign (apply foreign operation args)) (fn (apply ... args)) (t 
(tramp-run-real-handler operation args)))
  (let* ((fn ...) (filename ...) (foreign ...)) (cond (foreign ...) (fn ...) (t 
...)))
  (progn (let* (... ... ...) (cond ... ... ...)))
  (unwind-protect (progn (let* ... ...)) (set-match-data 
save-match-data-internal))
  (let ((save-match-data-internal ...)) (unwind-protect (progn ...) 
(set-match-data save-match-data-internal)))
  (save-match-data (let* (... ... ...) (cond ... ... ...)))
  tramp-file-name-handler(expand-file-name 
"/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil)
  expand-file-name("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z")
  recentf-add-file("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z")
  recentf-add-file-hook()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer z> 
"/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil nil 
"/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" (2 -1))
  find-file-noselect("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil 
nil nil)
  ad-Orig-find-file("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z" nil)
  (setq ad-return-value (ad-Orig-find-file filename wildcards))
  (let (ad-return-value) (setq ad-return-value (ad-Orig-find-file filename 
wildcards)) ad-return-value)
  find-file("/ftp:address@hidden:/home/kai/tmp/ange-ftp-test/z")
  dired-find-file()
  call-interactively(dired-find-file)

-- 
A preposition is not a good thing to end a sentence with.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]