[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
tramp (2.1.9); high cpu utilization on windows
From: |
Ye Wenbin |
Subject: |
tramp (2.1.9); high cpu utilization on windows |
Date: |
Wed, 11 Jul 2007 10:47:00 +0800 |
User-agent: |
Opera Mail/9.20 (Win32) |
Enter your bug report in this message, including as much detail
as you possibly can about the problem, what you did to cause it
and what the local and remote machines are.
If you can give a simple set of instructions to make this bug
happen reliably, please include those. Thank you for helping
kill bugs in TRAMP.
Another useful thing to do is to put
(setq tramp-verbose 8)
in the ~/.emacs file and to repeat the bug. Then, include the
contents of the *tramp/foo* buffer and the *debug tramp/foo*
buffer in your bug report.
--bug report follows this line--
I put latest tramp in site-lisp directory, and make sure that the version
of
the tramp loaded is 2.1.9. Then start emacs with `emacs -Q`, eval
(require 'tramp) in *scratch* buffer. The cpu utilization of emacs
become 99%. And use M-x list-process can see a remain process with no
name as following:
Proc Status Buffer Command
---- ------ ------ -------
run (none) ls
After compare with old version, I found the problem is introduced from
(require 'tramp-util). Comment the line 170, and eval
(require 'tramp), everything is well. And final find the problem is
come from tramp-exists-file-name-handler in line 131 and 159.
Eval this will reproduce the situation:
(progn
(tramp-exists-file-name-handler 'start-process "" nil "ls")
(tramp-exists-file-name-handler 'call-process "ls"))
Change the order of the two form will be ok. But I think wait until
the process exit will be better. And this is my patch:
--- tramp-util.el 2007/07/10 17:59:38 1.2
+++ tramp-util.el 2007/07/10 18:02:10
@@ -98,6 +98,12 @@
;; local host.
;; Other open problems are `setenv'/`getenv'.
+(defun tramp-safe-run-process-test (code)
+ (let ((proc-list (process-list))
+ (res (eval code)))
+ (while (not (equal (process-list) proc-list))
+ (sit-for 0.1))
+ res))
(unless (tramp-exists-file-name-handler 'executable-find "ls")
(defadvice executable-find
@@ -122,7 +128,8 @@
(add-hook 'tramp-util-unload-hook
'(lambda () (ad-unadvise 'executable-find))))
-(unless (tramp-exists-file-name-handler 'start-process "" nil "ls")
+(unless (tramp-safe-run-process-test
+ '(tramp-exists-file-name-handler 'start-process "" nil "ls"))
(defadvice start-process
(around tramp-advice-start-process activate)
"Invoke `tramp-handle-start-process' for Tramp files."
@@ -148,7 +155,8 @@
(add-hook 'tramp-util-unload-hook
'(lambda () (ad-unadvise 'start-process-shell-command))))
-(unless (tramp-exists-file-name-handler 'call-process "ls")
+(unless (tramp-safe-run-process-test
+ '(tramp-exists-file-name-handler 'call-process "ls"))
(defadvice call-process
(around tramp-advice-call-process activate)
"Invoke `tramp-handle-call-process' for Tramp files."
Emacs : GNU Emacs 23.0.0.1 (i386-mingw-nt5.1.2600)
of 2006-03-18 on BREP
Package: tramp (2.1.9)
current state:
==============
(setq
tramp-current-method nil
tramp-current-user nil
tramp-current-host nil
tramp-auto-save-directory nil
tramp-default-method "pscp"
tramp-default-method-alist '(("" "\\`\\(anonymous\\|ftp\\)\\'" "ftp")
("\\`ftp\\." "" "ftp")
("\\`localhost\\'" "\\`root\\'" "su"))
tramp-default-host "TSINGHUA-64DC66"
tramp-default-proxies-alist nil
tramp-default-user nil
tramp-default-user-alist '(("socks" nil "ywb") ("tunnel" nil "ywb")
("fish" nil "ywb")
("\\`su\\(do\\)?\\'" nil "root")
("\\`r\\(em\\)?\\(cp\\|sh\\)\\|telnet\\'" nil
"ywb")
)
tramp-rsh-end-of-line "\n"
tramp-default-password-end-of-line "\n"
tramp-remote-path '(tramp-default-remote-path "/usr/sbin" "/usr/local/bin"
"/local/bin" "/local/freeware/bin" "/local/gnu/bin"
"/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin")
tramp-login-prompt-regexp ".*ogin\\( .*\\)?: *"
tramp-password-prompt-regexp "(base64-decode-string
\"Xi4qXChbcFBdYXNzd29yZFx8W3BQXWFzc3BocmFzZVwpLio6AD8gKg==\""
tramp-wrong-passwd-regexp "^.*\\(Connection \\(?:closed by foreign
host\\.\\|refused\\)\\|Host key verification failed\\.\\|Login
\\(?:[Ii]ncorrect\\)\\|N\\(?:ame or service not known\\|o supported
authentication methods left to try!\\)\\|Permission denied\\.\\|Sorry, try
again\\.\\|Tramp connection closed\\).*\\|^.*\\(Received signal
[0-9]+\\).*"
tramp-yesno-prompt-regexp "\\(Are you sure you want to continue
connecting (yes/no)\\?\\)\\s-*"
tramp-yn-prompt-regexp "\\(\\(?:Store key in cache\\? (y/\\|Update cached
key\\? (y/n, Return cancels connectio\\)n)\\)\\s-*"
tramp-terminal-prompt-regexp "\\(TERM = (.*)\\|Terminal type\\?
\\[.*\\]\\)\\s-*"
tramp-temp-name-prefix "tramp."
tramp-file-name-structure '("^/\\(\\([a-zA-Z_0-9-]+\\):\\)?\\(\\([^:/
]+\\)@\\)?\\([a-zA-Z0-9_.-]+\\(#[0-9]+\\)?\\)?:\\(.*$\\)" 2 4 5 7)
tramp-file-name-regexp "\\`/[^/:]+:"
tramp-methods '(("fish") ("ftp")
("rcp" (tramp-login-program "rsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "rcp")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t)
(tramp-password-end-of-line nil))
("scp" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp")
(tramp-copy-args (("-P" "%p") ("-p" "%k") ("-q")))
(tramp-copy-keep-date t) (tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("scp1" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-1" "-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp")
(tramp-copy-args (("-1") ("-P" "%p") ("-p" "%k") ("-q")))
(tramp-copy-keep-date t) (tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("scp2" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-2" "-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp")
(tramp-copy-args (("-2") ("-P" "%p") ("-p" "%k") ("-q")))
(tramp-copy-keep-date t) (tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("scp1_old" (tramp-login-program "ssh1")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp1")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t)
(tramp-password-end-of-line nil))
("scp2_old" (tramp-login-program "ssh2")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp2")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t)
(tramp-password-end-of-line nil))
("sftp" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "sftp")
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("rsync" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "rsync")
(tramp-copy-args (("-e" "ssh") ("-t" "%k")))
(tramp-copy-keep-date t) (tramp-password-end-of-line nil))
("remcp" (tramp-login-program "remsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "rcp")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t)
(tramp-password-end-of-line nil))
("rsh" (tramp-login-program "rsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("ssh" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("ssh1" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-1" "-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("ssh2" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-2" "-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("ssh1_old" (tramp-login-program "ssh1")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("ssh2_old" (tramp-login-program "ssh2")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p") ("-e" "none")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("remsh" (tramp-login-program "remsh")
(tramp-login-args (("%h") ("-l" "%u")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("telnet" (tramp-login-program "telnet")
(tramp-login-args (("%h") ("%p")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil) (tramp-default-port 23))
("su" (tramp-login-program "su")
(tramp-login-args (("-") ("%u")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("sudo" (tramp-login-program "sudo")
(tramp-login-args (("-u" "%u") ("-s" "-p" "Password:")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("scpc" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p")
("-o" "address@hidden:%%p")
("-o" "ControlMaster=yes") ("-e" "none"))
)
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp")
(tramp-copy-args
(("-P" "%p") ("-p" "%k") ("-q")
("-o" "address@hidden:%%p")
("-o" "ControlMaster=auto"))
)
(tramp-copy-keep-date t) (tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("scpx" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p")
("-e" "none" "-t" "-t" "/bin/sh"))
)
(tramp-remote-sh "/bin/sh") (tramp-copy-program "scp")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t)
(tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("sshx" (tramp-login-program "ssh")
(tramp-login-args
(("%h") ("-l" "%u") ("-p" "%p")
("-e" "none" "-t" "-t" "/bin/sh"))
)
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil)
(tramp-gw-args
(("-o" "GlobalKnownHostsFile=/dev/null")
("-o" "UserKnownHostsFile=/dev/null")
("-o" "StrictHostKeyChecking=no"))
)
(tramp-default-port 22))
("krlogin" (tramp-login-program "krlogin")
(tramp-login-args (("%h") ("-l" "%u") ("-x")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line nil))
("plink" (tramp-login-program "plink")
(tramp-login-args (("%h") ("-l" "%u") ("-P" "%p") ("-ssh")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line "xy") (tramp-default-port 22))
("plink1" (tramp-login-program "plink")
(tramp-login-args
(("%h") ("-l" "%u") ("-P" "%p") ("-1" "-ssh")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program nil)
(tramp-copy-args nil) (tramp-copy-keep-date nil)
(tramp-password-end-of-line "xy") (tramp-default-port 22))
("pscp" (tramp-login-program "plink")
(tramp-login-args (("%h") ("-l" "%u") ("-P" "%p") ("-ssh")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "pscp")
(tramp-copy-args (("-scp") ("-p" "%k")))
(tramp-copy-keep-date t) (tramp-password-end-of-line "xy")
(tramp-default-port 22))
("psftp" (tramp-login-program "plink")
(tramp-login-args (("%h") ("-l" "%u") ("-P" "%p") ("-ssh")))
(tramp-remote-sh "/bin/sh") (tramp-copy-program "pscp")
(tramp-copy-args (("-psftp") ("-p" "%k")))
(tramp-copy-keep-date t) (tramp-password-end-of-line "xy"))
("fcp" (tramp-login-program "fsh")
(tramp-login-args (("%h") ("-l" "%u") ("sh" "-i")))
(tramp-remote-sh "/bin/sh -i") (tramp-copy-program "fcp")
(tramp-copy-args (("-p" "%k"))) (tramp-copy-keep-date t)
(tramp-password-end-of-line nil))
)
tramp-end-of-output "///338ae342da93fd3ecc91fe4aefec4766"
tramp-local-coding-commands '((b64 base64-encode-region
base64-decode-region)
(uu tramp-uuencode-region
uudecode-decode-region)
(pack
"perl -e 'binmode STDIN; binmode STDOUT; print pack(q{u*}, join q{},
<>)'" "perl -e 'binmode STDIN; binmode STDOUT; print unpack(q{u*}, join
q{}, <>)'")
)
tramp-remote-coding-commands '((b64 "mimencode -b" "mimencode -u -b")
(b64 "mmencode -b" "mmencode -u -b")
(b64 "recode data..base64"
"recode base64..data")
(b64 tramp-perl-encode-with-module
tramp-perl-decode-with-module)
(b64 tramp-perl-encode tramp-perl-decode)
(uu "uuencode xxx" "uudecode -o /dev/stdout")
(uu "uuencode xxx" "uudecode -o -")
(uu "uuencode xxx" "uudecode -p")
(uu "uuencode xxx" tramp-uudecode)
(pack
"perl -e 'binmode STDIN; binmode STDOUT; print pack(q{u*}, join q{},
<>)'" "perl -e 'binmode STDIN; binmode STDOUT; print unpack(q{u*}, join
q{}, <>)'")
)
tramp-actions-before-shell '((tramp-login-prompt-regexp
tramp-action-login)
(tramp-password-prompt-regexp
tramp-action-password)
(tramp-wrong-passwd-regexp
tramp-action-permission-denied)
(shell-prompt-pattern tramp-action-succeed)
(tramp-shell-prompt-pattern tramp-action-succeed)
(tramp-yesno-prompt-regexp tramp-action-yesno)
(tramp-yn-prompt-regexp tramp-action-yn)
(tramp-terminal-prompt-regexp
tramp-action-terminal)
(tramp-process-alive-regexp
tramp-action-process-alive)
)
tramp-actions-copy-out-of-band '((tramp-password-prompt-regexp
tramp-action-password)
(tramp-wrong-passwd-regexp
tramp-action-permission-denied)
(tramp-copy-failed-regexp
tramp-action-permission-denied)
(tramp-process-alive-regexp
tramp-action-out-of-band)
)
tramp-terminal-type "dumb"
tramp-shell-prompt-pattern "(base64-decode-string
\"XlteIyQlPgpdKlsjJCU+XSAqXCgbXFtbMC05O10qW2EtekEtWl0gKlwpKg==\""
tramp-backup-directory-alist nil
tramp-cache-data '(([cl-struct-tramp-file-name "pscp" "ywb"
"219.223.179.102"
nil]
("uname" "CYGWIN_NT-5.1 1.5.24(0.156/4/2)")
("default-remote-path" "/bin:/usr/bin") ("test" "test")
("/bin" t) ("/usr/bin" t) ("/usr/sbin" t)
("/usr/local/bin" t) ("/local/bin" nil)
("/local/freeware/bin" nil) ("/local/gnu/bin" nil)
("/usr/freeware/bin" nil) ("/usr/pkg/bin" nil)
("/usr/contrib/bin" nil) ("stat" "\\stat")
("ls" "/bin/ls") ("id" "/bin/id") ("gid-string" "None")
("file-exists" "test -e") ("gid-integer" 513)
("perl" "\\perl") ("local-encoding" base64-encode-region)
("local-decoding" base64-decode-region)
("remote-encoding" tramp-perl-encode-with-module)
("remote-decoding" tramp-perl-decode-with-module))
([cl-struct-tramp-file-name "pscp" "ywb" "localhost" nil]
("uname" "CYGWIN_NT-5.1 1.5.24(0.156/4/2)")
("default-remote-path" "/bin:/usr/bin") ("test" "test")
("/bin" t) ("/usr/bin" t) ("/usr/sbin" t)
("/usr/local/bin" t) ("/local/bin" nil)
("/local/freeware/bin" nil) ("/local/gnu/bin" nil)
("/usr/freeware/bin" nil) ("/usr/pkg/bin" nil)
("/usr/contrib/bin" nil) ("file-exists" "test -e")
("stat" "\\stat") ("id" "/bin/id") ("gid-integer" 513)
("ls" "/bin/ls") ("gid-string" "None") ("perl" "\\perl")
("local-encoding" base64-encode-region)
("local-decoding" base64-decode-region)
("remote-encoding" tramp-perl-encode-with-module)
("remote-decoding" tramp-perl-decode-with-module))
)
shell-prompt-pattern "^[^#$%>\n]*[#$%>] *"
backup-by-copying nil
backup-by-copying-when-linked nil
backup-by-copying-when-mismatch nil
backup-by-copying-when-privileged-mismatch 200
password-cache t
password-cache-expiry 16
backup-directory-alist nil
file-name-handler-alist
'(("\\.Z\\(~\\|\\.~[0-9]+~\\)?\\'\\|\\.bz2\\'\\|\\.tbz\\'\\|\\.tgz\\'\\|\\.g?z\\(~\\|\\.~[0-9]+~\\)?\\'\\|\\.dz\\'"
. jka-compr-handler)
("\\`/[^/:]+:" . tramp-file-name-handler)
("\\`/:" . file-name-non-special))
)
- tramp (2.1.9); high cpu utilization on windows,
Ye Wenbin <=