tramp-devel
[Top][All Lists]
Advanced

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

ntemacs and tramp 2.1.7, 100% CPU problem


From: Wagemans, Peter
Subject: ntemacs and tramp 2.1.7, 100% CPU problem
Date: Fri, 8 Dec 2006 12:51:21 +0100


I'm having problems trying to get tramp 2.1.7 working with ntemacs,
versions [GNU Emacs 21.3.50.1 (i386-mingw-nt5.0.2195) of 2005-01-30 on
NONIQPC] and [GNU Emacs 22.0.50.1 (i386-mingw-nt5.0.2195) of
2006-10-16 on DTOP].

When tramp is loading, I end up with ntemacs using 100% CPU.

The problem during loading can be avoided by making the following stop
in the debugger and continue from there (by typing "c" twice):

(debug-on-entry 'start-process-shell-command)

The 100% CPU behaviour may surface again later in a session.

A traceback from start-process-shell-command is reproduced below.
Emacs appears to be encountering the following during load of
tramp-util.el:

(unless (tramp-exists-file-name-handler
         'start-process-shell-command "" nil "ls")
  (defadvice start-process-shell-command
...

and tramp-exists-file-name-handler creates a subprocess running
ls. (Cygwin including ls is available on this PC.) I haven't tried to
analyse why tramp-exists-file-name-handler is executing this command.

Without the debug breakpoint, Emacs ends up thinking it still has such
a subprocess when according to sysinternals procexp the subprocess no
longer exists. There could be a problem in ntemacs with subprocess
(IO) handling, but it would be nice if the new version of tramp could
avoid consistently hitting this problem (old versions didn't).

Any ideas on how to solve or avoid this problem?

Regards,

Peter Wagemans

------------------------------------------------------------------------

Full backtrace (with byte-code strings replaced by "..."):

* start-process-shell-command("" nil "ls")
  apply(start-process-shell-command ("" nil "ls"))
  (eq (apply operation args) operation)
  (let ((buffer-file-name "/") (fnha file-name-handler-alist) (check-file-name-operation operation) (file-name-handler-alist ...)) (eq (apply operation args) operation))

  (condition-case nil (let (... ... ... ...) (eq ... operation)) (error nil))
  tramp-exists-file-name-handler(start-process-shell-command "" nil "ls")
  (if (tramp-exists-file-name-handler (quote start-process-shell-command) "" nil "ls") nil (defadvice start-process-shell-command (around tramp-advice-start-process-shell-command activate) "Invoke `tramp-handle-start-process-shell-command' for Tramp files." (if ... ... ad-do-it)) (add-hook (quote tramp-util-unload-hook) (quote ...)))

  (unless (tramp-exists-file-name-handler (quote start-process-shell-command) "" nil "ls") (defadvice start-process-shell-command (around tramp-advice-start-process-shell-command activate) "Invoke `tramp-handle-start-process-shell-command' for Tramp files." (if ... ... ad-do-it)) (add-hook (quote tramp-util-unload-hook) (quote ...)))

  eval-buffer(#<buffer  *load*<7>> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-util.el" nil t)  ; Reading at buffer position 5745

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp-util.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-util.el" nil t)

  require(tramp-util)
  (progn (let (...) (require feature) (add-hook ... ...)) (unless (memq system-type ...) (require ...) (add-hook ... ...)) (require (quote tramp-util)) (add-hook (quote tramp-unload-hook) (quote ...)))

  eval((progn (let (...) (require feature) (add-hook ... ...)) (unless (memq system-type ...) (require ...) (add-hook ... ...)) (require (quote tramp-util)) (add-hook (quote tramp-unload-hook) (quote ...))))

  do-after-load-evaluation("f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el")
  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil nil)

  (tramp-message key 7 "%s %s" property value)
  (condition-case nil (tramp-message key 7 "%s %s" property value) (error nil))
  (let ((hash ...)) (puthash property value hash) (condition-case nil (tramp-message key 7 "%s %s" property value) (error nil)) value)

  tramp-set-connection-property([cl-struct-tramp-file-name "plink" "root" "abz-ldap" nil] "uname" "Linux 2.6.9-5.ELsmp")

  (while (setq item (pop element)) (tramp-set-connection-property key (pop item) (car item)))
  (while (setq element (pop list)) (setq key (pop element)) (while (setq item ...) (tramp-set-connection-property key ... ...)))

  (let ((list ...) element key item) (while (setq element ...) (setq key ...) (while ... ...)))
  (save-current-buffer (set-buffer temp-buffer) (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (with-current-buffer temp-buffer (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (unwind-protect (with-current-buffer temp-buffer (insert-file-contents tramp-persistency-file-name) (let ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))

  (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ...) (and ... ...)))
  (with-temp-buffer (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (condition-case err (with-temp-buffer (insert-file-contents tramp-persistency-file-name) (let ... ...)) (file-error (clrhash tramp-cache-data)) (error (message "%s" ...) (clrhash tramp-cache-data)))

  (progn (condition-case err (with-temp-buffer ... ...) (file-error ...) (error ... ...)))
  (if load-in-progress (progn (condition-case err ... ... ...)))
  (when load-in-progress (condition-case err (with-temp-buffer ... ...) (file-error ...) (error ... ...)))
  eval-buffer(#<buffer  *load*<6>> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" nil t)  ; Reading at buffer position 12214

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" nil t)

  require(tramp-cache)
  eval-buffer(#<buffer  *load*<5>> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil t)  ; Reading at buffer position 3519

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil nil)

  (tramp-message key 7 "%s %s" property value)
  (condition-case nil (tramp-message key 7 "%s %s" property value) (error nil))
  (let ((hash ...)) (puthash property value hash) (condition-case nil (tramp-message key 7 "%s %s" property value) (error nil)) value)

  tramp-set-connection-property([cl-struct-tramp-file-name "plink" "root" "abz-ldap" nil] "uname" "Linux 2.6.9-5.ELsmp")

  (while (setq item (pop element)) (tramp-set-connection-property key (pop item) (car item)))
  (while (setq element (pop list)) (setq key (pop element)) (while (setq item ...) (tramp-set-connection-property key ... ...)))

  (let ((list ...) element key item) (while (setq element ...) (setq key ...) (while ... ...)))
  (save-current-buffer (set-buffer temp-buffer) (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (with-current-buffer temp-buffer (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (unwind-protect (with-current-buffer temp-buffer (insert-file-contents tramp-persistency-file-name) (let ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))

  (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ...) (and ... ...)))
  (with-temp-buffer (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (condition-case err (with-temp-buffer (insert-file-contents tramp-persistency-file-name) (let ... ...)) (file-error (clrhash tramp-cache-data)) (error (message "%s" ...) (clrhash tramp-cache-data)))

  (progn (condition-case err (with-temp-buffer ... ...) (file-error ...) (error ... ...)))
  (if load-in-progress (progn (condition-case err ... ... ...)))
  (when load-in-progress (condition-case err (with-temp-buffer ... ...) (file-error ...) (error ... ...)))
  eval-buffer(#<buffer  *load*<4>> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" nil t)  ; Reading at buffer position 12214

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" nil t)

  require(tramp-cache)
  eval-buffer(#<buffer  *load*<3>> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil t)  ; Reading at buffer position 3519

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil nil)

  (tramp-message key 7 "%s %s" property value)
  (condition-case nil (tramp-message key 7 "%s %s" property value) (error nil))
  (let ((hash ...)) (puthash property value hash) (condition-case nil (tramp-message key 7 "%s %s" property value) (error nil)) value)

  tramp-set-connection-property([cl-struct-tramp-file-name "plink" "root" "abz-ldap" nil] "uname" "Linux 2.6.9-5.ELsmp")

  (while (setq item (pop element)) (tramp-set-connection-property key (pop item) (car item)))
  (while (setq element (pop list)) (setq key (pop element)) (while (setq item ...) (tramp-set-connection-property key ... ...)))

  (let ((list ...) element key item) (while (setq element ...) (setq key ...) (while ... ...)))
  (save-current-buffer (set-buffer temp-buffer) (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (with-current-buffer temp-buffer (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (unwind-protect (with-current-buffer temp-buffer (insert-file-contents tramp-persistency-file-name) (let ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))

  (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ...) (and ... ...)))
  (with-temp-buffer (insert-file-contents tramp-persistency-file-name) (let (... element key item) (while ... ... ...)))

  (condition-case err (with-temp-buffer (insert-file-contents tramp-persistency-file-name) (let ... ...)) (file-error (clrhash tramp-cache-data)) (error (message "%s" ...) (clrhash tramp-cache-data)))

  (progn (condition-case err (with-temp-buffer ... ...) (file-error ...) (error ... ...)))
  (if load-in-progress (progn (condition-case err ... ... ...)))
  (when load-in-progress (condition-case err (with-temp-buffer ... ...) (file-error ...) (error ... ...)))
  eval-buffer(#<buffer  *load*<2>> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" nil t)  ; Reading at buffer position 12214

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp-cache.el" nil t)

  require(tramp-cache)
  eval-buffer(#<buffer  *load*> nil "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil t)  ; Reading at buffer position 3519

  load-with-code-conversion("f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" "f:/usr/local/emacs/ntemacs22/lisp/net/tramp.el" nil nil)

  tramp-file-name-handler(substitute-in-file-name "/address@hidden:")
  substitute-in-file-name("/address@hidden:")
  byte-code("..." [rfn-eshadow-overlay end start mid goal pos substitute-in-file-name minibuffer-contents overlay-end minibuffer-prompt-end nil (byte-code "..." [pos substitute-in-file-name buffer-substring-no-properties] 4) ((error)) 2 move-overlay] 5)

  rfn-eshadow-update-overlay()
  run-hooks(post-command-hook)
  read-file-name("Find file: " nil "F:\\usr\\local\\emacs\\ntemacs22\\bin/" nil)
  find-file-read-args("Find file: " nil)
  call-interactively(find-file)

------------------------------------------------------------------------


reply via email to

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