unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
@ 2015-03-06  6:23 Tassilo Horn
  2015-03-06  8:29 ` Michael Albinus
  0 siblings, 1 reply; 27+ messages in thread
From: Tassilo Horn @ 2015-03-06  6:23 UTC (permalink / raw)
  To: 20015


Since the recent TRAMP changes on master, emacs startup takes about a
minute.  Starting it with

  emacs -Q --eval "(progn (setq debug-on-quit t) (require 'tramp))"

then waiting till it hangs and hitting C-g reveals:

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (quit)
  call-process("ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist")
  (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char (point-min)) (if (search-forward-regexp "unknown.+key" nil t) (setq result (concat result " -o ControlPath='tramp.%%r@%%h:%%p'")) (setq result (concat result " -o ControlPath='tramp.%%C'"))))
  (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char (point-min)) (if (search-forward-regexp "unknown.+key" nil t) (setq result (concat result " -o ControlPath='tramp.%%r@%%h:%%p'")) (setq result (concat result " -o ControlPath='tramp.%%C'")))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char (point-min)) (if (search-forward-regexp "unknown.+key" nil t) (setq result (concat result " -o ControlPath='tramp.%%r@%%h:%%p'")) (setq result (concat result " -o ControlPath='tramp.%%C'")))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char (point-min)) (if (search-forward-regexp "unknown.+key" nil t) (setq result (concat result " -o ControlPath='tramp.%%r@%%h:%%p'")) (setq result (concat result " -o ControlPath='tramp.%%C'")))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  (if (= 0 (length result)) nil (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char (point-min)) (if (search-forward-regexp "unknown.+key" nil t) (setq result (concat result " -o ControlPath='tramp.%%r@%%h:%%p'")) (setq result (concat result " -o ControlPath='tramp.%%C'")))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPersist") (goto-char (point-min)) (if (search-forward-regexp "missing.+argument" nil t) (progn (setq result ...)))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))
  (progn (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlMaster") (goto-char (point-min)) (if (search-forward-regexp "missing.+argument" nil t) (progn (setq result "-o ControlMaster=auto")))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if (= 0 (length result)) nil (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char (point-min)) (if (search-forward-regexp "unknown.+key" nil t) (setq result ...) (setq result ...))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPersist") (goto-char (point-min)) (if (search-forward-regexp "missing.+argument" nil t) (progn ...))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))))
  (if (executable-find "ssh") (progn (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlMaster") (goto-char (point-min)) (if (search-forward-regexp "missing.+argument" nil t) (progn ...))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if (= 0 (length result)) nil (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist") (goto-char ...) (if ... ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlPersist") (goto-char ...) (if ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))))
  (progn (if (executable-find "ssh") (progn (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (call-process "ssh" nil t nil "-o" "ControlMaster") (goto-char ...) (if ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if (= 0 (length result)) nil (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...))))))))
  (condition-case nil (progn (if (executable-find "ssh") (progn (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...)))) (if (= 0 (length result)) nil (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...))) (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...))))))) (error nil))
  (let ((result "") (case-fold-search t)) (condition-case nil (progn (if (executable-find "ssh") (progn (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...))) (if (= 0 (length result)) nil (let (...) (save-current-buffer ... ...)) (let (...) (save-current-buffer ... ...)))))) (error nil)) result)
  (defconst tramp-ssh-controlmaster-options (let ((result "") (case-fold-search t)) (condition-case nil (progn (if (executable-find "ssh") (progn (let (...) (save-current-buffer ... ...)) (if (= 0 ...) nil (let ... ...) (let ... ...))))) (error nil)) result) "Call ssh to detect whether it supports the Control* arguments.\nReturn a string to be used in `tramp-methods'.")
  eval-buffer(#<buffer  *load*> nil "/home/horn/Repos/el/emacs/lisp/net/tramp-loaddefs.el" nil t)  ; Reading at buffer position 7084
  load-with-code-conversion("/home/horn/Repos/el/emacs/lisp/net/tramp-loaddefs.el" "/home/horn/Repos/el/emacs/lisp/net/tramp-loaddefs.el" nil t)
  require(tramp-loaddefs)
  byte-code("\302\303!\204\0\304\305\306\"\210\304\307\306\"\210\310\311!\210\310\312!\210\310\313!\210\310\314!\210\310\315!\210\310\316!\210\310\317\320\306#\2046\310\321\320\306#\210\310\322\320\306#\210\310\323!\210\324\325!\204J\326\320!\210\324\327!\203\\\330\320!\210\327\331\320!\210\332\324\333!\204f\334\320!\210\320\207" [byte-compile-not-obsolete-var byte-compile-not-obsolete-vars fboundp ignore-errors load "cl" noerror "cl-macs" require advice custom format-spec shell trampver tramp-loaddefs password-cache nil password auth-source timer boundp last-coding-system-used (lambda (def-tmp-var) (defvar last-coding-system-used def-tmp-var)) directory-sep-char (lambda (def-tmp-var) (defvar byte-compile-not-obsolete-var def-tmp-var)) (lambda (def-tmp-var) (defvar byte-compile-not-obsolete-vars def-tmp-var)) (directory-sep-char) remote-file-name-inhibit-cache (lambda (def-tmp-var) (defvar remote-file-name-inhibit-cache def-tmp-var))] 4)
  require(tramp-compat)
  byte-code("\300\301!\210\302\303\304\305\306\307\306\310\311\312\313\314&\v\210\315\316\317\320\306\303\321\322&\a\210\315\323\324\325\306\303\321\326&\a\210\327\330!\203:\315\331\304\332\306\303\321\333&\a\210\315\334\304\335\306\303\321\336&\a\210\315\337\340\341\306\303\321\342&\a\210\315\343\344\345\306\303\321\346&\a\210\315\347\350\351\313\352\306\303\321\353&	\207" [require tramp-compat custom-declare-group tramp nil "Edit remote files with a combination of ssh, scp, etc." :group files comm :link (custom-manual "(tramp)Top") :version "22.1" custom-declare-variable tramp-mode t "Whether Tramp is enabled.\nIf it is set to nil, all remote file names are used literally." :type boolean tramp-verbose 3 "Verbosity level for Tramp messages.\nAny level x includes messages for all levels 1 .. x-1.  The levels are\n\n 0  silent (no tramp messages at all)\n 1  errors\n 2  warnings\n 3  connection to remote hosts (default level)\n 4  activities\n 5  internal\n 6  sent and received strings\n 7  file caching\n 8  connection properties\n 9  test commands\n10  traces (huge)." integer boundp backup-directory-alist tramp-backup-directory-alist "Alist of filename patterns and backup directory names.\nEach element looks like (REGEXP . DIRECTORY), with the same meaning like\nin `backup-directory-alist'.  If a Tramp file is backed up, and DIRECTORY\nis a local file name, the backup directory is prepended with Tramp file\nname prefix (method, user, host) of file.\n\n(setq tramp-backup-directory-alist backup-directory-alist)\n\ngives the same backup policy for Tramp files on their hosts like the\npolicy for local files." (repeat (cons (regexp :tag "Regexp matching filename") (directory :tag "Backup directory name"))) tramp-auto-save-directory "Put auto-save files in this directory, if set.\nThe idea is to use a local directory so that auto-saving is faster." (choice (const nil) string) tramp-encoding-shell (if (memq system-type (quote (windows-nt))) (getenv "COMSPEC") "/bin/sh") "Use this program for encoding and decoding commands on the local host.\nThis shell is used to execute the encoding and decoding command on the\nlocal host, so if you want to use `~' in those commands, you should\nchoose a shell here which groks tilde expansion.  `/bin/sh' normally\ndoes not understand tilde expansion.\n\nFor encoding and decoding, commands like the following are executed:\n\n    /bin/sh -c COMMAND < INPUT > OUTPUT\n\nThis variable can be used to change the \"/bin/sh\" part.  See the\nvariable `tramp-encoding-command-switch' for the \"-c\" part.\n\nIf the shell must be forced to be interactive, see\n`tramp-encoding-command-interactive'.\n\nNote that this variable is not used for remote commands.  There are\nmechanisms in tramp.el which automatically determine the right shell to\nuse for the remote host." (file :must-match t) tramp-encoding-command-switch (if (string-match "cmd\\.exe" tramp-encoding-shell) "/c" "-c") "Use this switch together with `tramp-encoding-shell' for local commands.\nSee the variable `tramp-encoding-shell' for more information." string tramp-encoding-command-interactive (unless (string-match "cmd\\.exe" tramp-encoding-shell) "-i") "Use this switch together with `tramp-encoding-shell' for interactive shells.\nSee the variable `tramp-encoding-shell' for more information." "24.1" (choice (const nil) string)] 12)
  require(tramp)
  (progn (setq debug-on-quit t) (require (quote tramp)))
  eval((progn (setq debug-on-quit t) (require (quote tramp))))
  command-line-1(("--eval" "(progn (setq debug-on-quit t) (require 'tramp))"))
  command-line()
  normal-top-level()
--8<---------------cut here---------------end--------------->8---

The behavior is similar to when emacs starts up slow because the system
has no fully qualified domain name set, but my system does:

  % hostname
  thinkpad-t440p
  % hostname -f
  thinkpad-t440p.tsdh.org



In GNU Emacs 25.0.50.4 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.9)
 of 2015-03-06 on thinkpad-t440p
Repository revision: bfebebbc72c6a6ea375c6e8ed7f8641b25439770
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
System Description:	Arch Linux

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  gnus-topic-mode: t
  hl-line-mode: t
  global-company-mode: t
  global-aggressive-indent-mode: t
  gnus-undo-mode: t
  global-edit-server-edit-mode: t
  recentf-mode: t
  shell-dirtrack-mode: t
  helm-match-plugin-mode: t
  helm-occur-match-plugin-mode: t
  helm-autoresize-mode: t
  global-subword-mode: t
  subword-mode: t
  savehist-mode: t
  show-paren-mode: t
  icomplete-mode: t
  minibuffer-depth-indicate-mode: t
  electric-pair-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t

Recent messages:
20150306T071934.471> Reading active file via nndraft...
20150306T071934.473> Reading active file via nndraft...
20150306T071934.473> Reading active file via nndraft...done
20150306T071934.474> Reading active file from archive+nnml+archive:sent-postings via nnml...
20150306T071934.474> Opening nnml server on archive+nnml+archive:sent-postings...
20150306T071934.474> Opening nnml server on archive+nnml+archive:sent-postings...done
20150306T071934.476> nnml: Reading incoming mail (no new mail)...done
20150306T071934.476> Reading active file from archive+nnml+archive:sent-postings via nnml...
20150306T071934.477> Reading active file from archive+nnml+archive:sent-postings via nnml...done
20150306T071934.477> Checking new news...done

Load-path shadows:
~/Repos/el/auctex/lpath hides ~/Repos/el/gnus/lisp/lpath
~/Repos/el/gnus/lisp/md4 hides /home/horn/Repos/el/emacs/lisp/md4
~/Repos/el/gnus/lisp/color hides /home/horn/Repos/el/emacs/lisp/color
~/Repos/el/gnus/lisp/format-spec hides /home/horn/Repos/el/emacs/lisp/format-spec
~/Repos/el/gnus/lisp/password-cache hides /home/horn/Repos/el/emacs/lisp/password-cache
~/Repos/el/gnus/lisp/hex-util hides /home/horn/Repos/el/emacs/lisp/hex-util
~/Repos/el/gnus/lisp/dns-mode hides /home/horn/Repos/el/emacs/lisp/textmodes/dns-mode
/home/horn/.emacs.d/elpa/org-20150302/ob-plantuml hides /home/horn/Repos/el/emacs/lisp/org/ob-plantuml
/home/horn/.emacs.d/elpa/org-20150302/org-archive hides /home/horn/Repos/el/emacs/lisp/org/org-archive
/home/horn/.emacs.d/elpa/org-20150302/org-w3m hides /home/horn/Repos/el/emacs/lisp/org/org-w3m
/home/horn/.emacs.d/elpa/org-20150302/ox-org hides /home/horn/Repos/el/emacs/lisp/org/ox-org
/home/horn/.emacs.d/elpa/org-20150302/ob hides /home/horn/Repos/el/emacs/lisp/org/ob
/home/horn/.emacs.d/elpa/org-20150302/org-faces hides /home/horn/Repos/el/emacs/lisp/org/org-faces
/home/horn/.emacs.d/elpa/org-20150302/ob-awk hides /home/horn/Repos/el/emacs/lisp/org/ob-awk
/home/horn/.emacs.d/elpa/org-20150302/org-habit hides /home/horn/Repos/el/emacs/lisp/org/org-habit
/home/horn/.emacs.d/elpa/org-20150302/ob-sass hides /home/horn/Repos/el/emacs/lisp/org/ob-sass
/home/horn/.emacs.d/elpa/org-20150302/org-ctags hides /home/horn/Repos/el/emacs/lisp/org/org-ctags
/home/horn/.emacs.d/elpa/org-20150302/ob-screen hides /home/horn/Repos/el/emacs/lisp/org/ob-screen
/home/horn/.emacs.d/elpa/org-20150302/ox-md hides /home/horn/Repos/el/emacs/lisp/org/ox-md
/home/horn/.emacs.d/elpa/org-20150302/ox-beamer hides /home/horn/Repos/el/emacs/lisp/org/ox-beamer
/home/horn/.emacs.d/elpa/org-20150302/org-loaddefs hides /home/horn/Repos/el/emacs/lisp/org/org-loaddefs
/home/horn/.emacs.d/elpa/org-20150302/ob-perl hides /home/horn/Repos/el/emacs/lisp/org/ob-perl
/home/horn/.emacs.d/elpa/org-20150302/org-rmail hides /home/horn/Repos/el/emacs/lisp/org/org-rmail
/home/horn/.emacs.d/elpa/org-20150302/org-id hides /home/horn/Repos/el/emacs/lisp/org/org-id
/home/horn/.emacs.d/elpa/org-20150302/ox-publish hides /home/horn/Repos/el/emacs/lisp/org/ox-publish
/home/horn/.emacs.d/elpa/org-20150302/ob-maxima hides /home/horn/Repos/el/emacs/lisp/org/ob-maxima
/home/horn/.emacs.d/elpa/org-20150302/org-install hides /home/horn/Repos/el/emacs/lisp/org/org-install
/home/horn/.emacs.d/elpa/org-20150302/org-feed hides /home/horn/Repos/el/emacs/lisp/org/org-feed
/home/horn/.emacs.d/elpa/org-20150302/ob-R hides /home/horn/Repos/el/emacs/lisp/org/ob-R
/home/horn/.emacs.d/elpa/org-20150302/ox-latex hides /home/horn/Repos/el/emacs/lisp/org/ox-latex
/home/horn/.emacs.d/elpa/org-20150302/org-timer hides /home/horn/Repos/el/emacs/lisp/org/org-timer
/home/horn/.emacs.d/elpa/org-20150302/ob-core hides /home/horn/Repos/el/emacs/lisp/org/ob-core
/home/horn/.emacs.d/elpa/org-20150302/org-datetree hides /home/horn/Repos/el/emacs/lisp/org/org-datetree
/home/horn/.emacs.d/elpa/org-20150302/ob-sql hides /home/horn/Repos/el/emacs/lisp/org/ob-sql
/home/horn/.emacs.d/elpa/org-20150302/ob-js hides /home/horn/Repos/el/emacs/lisp/org/ob-js
/home/horn/.emacs.d/elpa/org-20150302/ob-tangle hides /home/horn/Repos/el/emacs/lisp/org/ob-tangle
/home/horn/.emacs.d/elpa/org-20150302/org-capture hides /home/horn/Repos/el/emacs/lisp/org/org-capture
/home/horn/.emacs.d/elpa/org-20150302/ob-haskell hides /home/horn/Repos/el/emacs/lisp/org/ob-haskell
/home/horn/.emacs.d/elpa/org-20150302/ob-dot hides /home/horn/Repos/el/emacs/lisp/org/ob-dot
/home/horn/.emacs.d/elpa/org-20150302/ob-exp hides /home/horn/Repos/el/emacs/lisp/org/ob-exp
/home/horn/.emacs.d/elpa/org-20150302/org-info hides /home/horn/Repos/el/emacs/lisp/org/org-info
/home/horn/.emacs.d/elpa/org-20150302/ob-octave hides /home/horn/Repos/el/emacs/lisp/org/ob-octave
/home/horn/.emacs.d/elpa/org-20150302/org-mobile hides /home/horn/Repos/el/emacs/lisp/org/org-mobile
/home/horn/.emacs.d/elpa/org-20150302/org-indent hides /home/horn/Repos/el/emacs/lisp/org/org-indent
/home/horn/.emacs.d/elpa/org-20150302/org-attach hides /home/horn/Repos/el/emacs/lisp/org/org-attach
/home/horn/.emacs.d/elpa/org-20150302/ob-java hides /home/horn/Repos/el/emacs/lisp/org/ob-java
/home/horn/.emacs.d/elpa/org-20150302/org-mhe hides /home/horn/Repos/el/emacs/lisp/org/org-mhe
/home/horn/.emacs.d/elpa/org-20150302/ob-scheme hides /home/horn/Repos/el/emacs/lisp/org/ob-scheme
/home/horn/.emacs.d/elpa/org-20150302/ob-lob hides /home/horn/Repos/el/emacs/lisp/org/ob-lob
/home/horn/.emacs.d/elpa/org-20150302/ob-calc hides /home/horn/Repos/el/emacs/lisp/org/ob-calc
/home/horn/.emacs.d/elpa/org-20150302/org-agenda hides /home/horn/Repos/el/emacs/lisp/org/org-agenda
/home/horn/.emacs.d/elpa/org-20150302/org-version hides /home/horn/Repos/el/emacs/lisp/org/org-version
/home/horn/.emacs.d/elpa/org-20150302/org-clock hides /home/horn/Repos/el/emacs/lisp/org/org-clock
/home/horn/.emacs.d/elpa/org-20150302/org-macro hides /home/horn/Repos/el/emacs/lisp/org/org-macro
/home/horn/.emacs.d/elpa/org-20150302/ob-fortran hides /home/horn/Repos/el/emacs/lisp/org/ob-fortran
/home/horn/.emacs.d/elpa/org-20150302/ob-picolisp hides /home/horn/Repos/el/emacs/lisp/org/ob-picolisp
/home/horn/.emacs.d/elpa/org-20150302/ob-mscgen hides /home/horn/Repos/el/emacs/lisp/org/ob-mscgen
/home/horn/.emacs.d/elpa/org-20150302/ox-texinfo hides /home/horn/Repos/el/emacs/lisp/org/ox-texinfo
/home/horn/.emacs.d/elpa/org-20150302/org-table hides /home/horn/Repos/el/emacs/lisp/org/org-table
/home/horn/.emacs.d/elpa/org-20150302/ob-matlab hides /home/horn/Repos/el/emacs/lisp/org/ob-matlab
/home/horn/.emacs.d/elpa/org-20150302/ox-html hides /home/horn/Repos/el/emacs/lisp/org/ox-html
/home/horn/.emacs.d/elpa/org-20150302/ox-icalendar hides /home/horn/Repos/el/emacs/lisp/org/ox-icalendar
/home/horn/.emacs.d/elpa/org-20150302/org-bbdb hides /home/horn/Repos/el/emacs/lisp/org/org-bbdb
/home/horn/.emacs.d/elpa/org-20150302/ob-asymptote hides /home/horn/Repos/el/emacs/lisp/org/ob-asymptote
/home/horn/.emacs.d/elpa/org-20150302/org-eshell hides /home/horn/Repos/el/emacs/lisp/org/org-eshell
/home/horn/.emacs.d/elpa/org-20150302/ob-comint hides /home/horn/Repos/el/emacs/lisp/org/ob-comint
/home/horn/.emacs.d/elpa/org-20150302/org hides /home/horn/Repos/el/emacs/lisp/org/org
/home/horn/.emacs.d/elpa/org-20150302/org-irc hides /home/horn/Repos/el/emacs/lisp/org/org-irc
/home/horn/.emacs.d/elpa/org-20150302/ob-table hides /home/horn/Repos/el/emacs/lisp/org/ob-table
/home/horn/.emacs.d/elpa/org-20150302/ob-scala hides /home/horn/Repos/el/emacs/lisp/org/ob-scala
/home/horn/.emacs.d/elpa/org-20150302/ob-io hides /home/horn/Repos/el/emacs/lisp/org/ob-io
/home/horn/.emacs.d/elpa/org-20150302/ox-ascii hides /home/horn/Repos/el/emacs/lisp/org/ox-ascii
/home/horn/.emacs.d/elpa/org-20150302/ob-lisp hides /home/horn/Repos/el/emacs/lisp/org/ob-lisp
/home/horn/.emacs.d/elpa/org-20150302/org-macs hides /home/horn/Repos/el/emacs/lisp/org/org-macs
/home/horn/.emacs.d/elpa/org-20150302/ob-sqlite hides /home/horn/Repos/el/emacs/lisp/org/ob-sqlite
/home/horn/.emacs.d/elpa/org-20150302/ob-latex hides /home/horn/Repos/el/emacs/lisp/org/ob-latex
/home/horn/.emacs.d/elpa/org-20150302/ob-css hides /home/horn/Repos/el/emacs/lisp/org/ob-css
/home/horn/.emacs.d/elpa/org-20150302/org-protocol hides /home/horn/Repos/el/emacs/lisp/org/org-protocol
/home/horn/.emacs.d/elpa/org-20150302/ob-keys hides /home/horn/Repos/el/emacs/lisp/org/ob-keys
/home/horn/.emacs.d/elpa/org-20150302/org-mouse hides /home/horn/Repos/el/emacs/lisp/org/org-mouse
/home/horn/.emacs.d/elpa/org-20150302/ob-ruby hides /home/horn/Repos/el/emacs/lisp/org/ob-ruby
/home/horn/.emacs.d/elpa/org-20150302/org-element hides /home/horn/Repos/el/emacs/lisp/org/org-element
/home/horn/.emacs.d/elpa/org-20150302/org-bibtex hides /home/horn/Repos/el/emacs/lisp/org/org-bibtex
/home/horn/.emacs.d/elpa/org-20150302/ob-C hides /home/horn/Repos/el/emacs/lisp/org/ob-C
/home/horn/.emacs.d/elpa/org-20150302/org-src hides /home/horn/Repos/el/emacs/lisp/org/org-src
/home/horn/.emacs.d/elpa/org-20150302/ob-makefile hides /home/horn/Repos/el/emacs/lisp/org/ob-makefile
/home/horn/.emacs.d/elpa/org-20150302/org-colview hides /home/horn/Repos/el/emacs/lisp/org/org-colview
/home/horn/.emacs.d/elpa/org-20150302/ob-ledger hides /home/horn/Repos/el/emacs/lisp/org/ob-ledger
/home/horn/.emacs.d/elpa/org-20150302/org-crypt hides /home/horn/Repos/el/emacs/lisp/org/org-crypt
/home/horn/.emacs.d/elpa/org-20150302/ob-shen hides /home/horn/Repos/el/emacs/lisp/org/ob-shen
/home/horn/.emacs.d/elpa/org-20150302/ob-gnuplot hides /home/horn/Repos/el/emacs/lisp/org/ob-gnuplot
/home/horn/.emacs.d/elpa/org-20150302/org-inlinetask hides /home/horn/Repos/el/emacs/lisp/org/org-inlinetask
/home/horn/.emacs.d/elpa/org-20150302/org-gnus hides /home/horn/Repos/el/emacs/lisp/org/org-gnus
/home/horn/.emacs.d/elpa/org-20150302/ob-sh hides /home/horn/Repos/el/emacs/lisp/org/ob-sh
/home/horn/.emacs.d/elpa/org-20150302/org-pcomplete hides /home/horn/Repos/el/emacs/lisp/org/org-pcomplete
/home/horn/.emacs.d/elpa/org-20150302/org-docview hides /home/horn/Repos/el/emacs/lisp/org/org-docview
/home/horn/.emacs.d/elpa/org-20150302/ox-man hides /home/horn/Repos/el/emacs/lisp/org/ox-man
/home/horn/.emacs.d/elpa/org-20150302/org-plot hides /home/horn/Repos/el/emacs/lisp/org/org-plot
/home/horn/.emacs.d/elpa/org-20150302/ox hides /home/horn/Repos/el/emacs/lisp/org/ox
/home/horn/.emacs.d/elpa/org-20150302/ob-python hides /home/horn/Repos/el/emacs/lisp/org/ob-python
/home/horn/.emacs.d/elpa/org-20150302/ob-eval hides /home/horn/Repos/el/emacs/lisp/org/ob-eval
/home/horn/.emacs.d/elpa/org-20150302/ob-clojure hides /home/horn/Repos/el/emacs/lisp/org/ob-clojure
/home/horn/.emacs.d/elpa/org-20150302/ob-ocaml hides /home/horn/Repos/el/emacs/lisp/org/ob-ocaml
/home/horn/.emacs.d/elpa/org-20150302/ox-odt hides /home/horn/Repos/el/emacs/lisp/org/ox-odt
/home/horn/.emacs.d/elpa/org-20150302/org-compat hides /home/horn/Repos/el/emacs/lisp/org/org-compat
/home/horn/.emacs.d/elpa/org-20150302/org-list hides /home/horn/Repos/el/emacs/lisp/org/org-list
/home/horn/.emacs.d/elpa/org-20150302/ob-emacs-lisp hides /home/horn/Repos/el/emacs/lisp/org/ob-emacs-lisp
/home/horn/.emacs.d/elpa/org-20150302/org-entities hides /home/horn/Repos/el/emacs/lisp/org/org-entities
/home/horn/.emacs.d/elpa/org-20150302/ob-ref hides /home/horn/Repos/el/emacs/lisp/org/ob-ref
/home/horn/.emacs.d/elpa/org-20150302/ob-ditaa hides /home/horn/Repos/el/emacs/lisp/org/ob-ditaa
/home/horn/.emacs.d/elpa/org-20150302/ob-lilypond hides /home/horn/Repos/el/emacs/lisp/org/ob-lilypond
/home/horn/.emacs.d/elpa/org-20150302/ob-org hides /home/horn/Repos/el/emacs/lisp/org/ob-org
/home/horn/.emacs.d/elpa/org-20150302/org-footnote hides /home/horn/Repos/el/emacs/lisp/org/org-footnote
~/Repos/el/gnus/lisp/dig hides /home/horn/Repos/el/emacs/lisp/net/dig
~/Repos/el/gnus/lisp/hmac-md5 hides /home/horn/Repos/el/emacs/lisp/net/hmac-md5
~/Repos/el/gnus/lisp/ntlm hides /home/horn/Repos/el/emacs/lisp/net/ntlm
~/Repos/el/gnus/lisp/hmac-def hides /home/horn/Repos/el/emacs/lisp/net/hmac-def
~/Repos/el/gnus/lisp/rfc2104 hides /home/horn/Repos/el/emacs/lisp/net/rfc2104
~/Repos/el/gnus/lisp/sasl-ntlm hides /home/horn/Repos/el/emacs/lisp/net/sasl-ntlm
~/Repos/el/gnus/lisp/sasl-cram hides /home/horn/Repos/el/emacs/lisp/net/sasl-cram
~/Repos/el/gnus/lisp/dns hides /home/horn/Repos/el/emacs/lisp/net/dns
~/Repos/el/gnus/lisp/sasl hides /home/horn/Repos/el/emacs/lisp/net/sasl
~/Repos/el/gnus/lisp/tls hides /home/horn/Repos/el/emacs/lisp/net/tls
~/Repos/el/gnus/lisp/sasl-scram-rfc hides /home/horn/Repos/el/emacs/lisp/net/sasl-scram-rfc
~/Repos/el/gnus/lisp/netrc hides /home/horn/Repos/el/emacs/lisp/net/netrc
~/Repos/el/gnus/lisp/sasl-digest hides /home/horn/Repos/el/emacs/lisp/net/sasl-digest
~/Repos/el/gnus/lisp/uudecode hides /home/horn/Repos/el/emacs/lisp/mail/uudecode
~/Repos/el/gnus/lisp/binhex hides /home/horn/Repos/el/emacs/lisp/mail/binhex
~/Repos/el/gnus/lisp/hashcash hides /home/horn/Repos/el/emacs/lisp/mail/hashcash
~/Repos/el/gnus/lisp/canlock hides /home/horn/Repos/el/emacs/lisp/gnus/canlock
~/Repos/el/gnus/lisp/nneething hides /home/horn/Repos/el/emacs/lisp/gnus/nneething
~/Repos/el/gnus/lisp/mm-encode hides /home/horn/Repos/el/emacs/lisp/gnus/mm-encode
~/Repos/el/gnus/lisp/mm-util hides /home/horn/Repos/el/emacs/lisp/gnus/mm-util
~/Repos/el/gnus/lisp/rfc2047 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2047
~/Repos/el/gnus/lisp/nnml hides /home/horn/Repos/el/emacs/lisp/gnus/nnml
~/Repos/el/gnus/lisp/gnus-cus hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cus
~/Repos/el/gnus/lisp/gnus-range hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-range
~/Repos/el/gnus/lisp/gnus-int hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-int
~/Repos/el/gnus/lisp/gnus-cloud hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cloud
~/Repos/el/gnus/lisp/spam-stat hides /home/horn/Repos/el/emacs/lisp/gnus/spam-stat
~/Repos/el/gnus/lisp/nnmh hides /home/horn/Repos/el/emacs/lisp/gnus/nnmh
~/Repos/el/gnus/lisp/gnus-mlspl hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-mlspl
~/Repos/el/gnus/lisp/deuglify hides /home/horn/Repos/el/emacs/lisp/gnus/deuglify
~/Repos/el/gnus/lisp/gnus-gravatar hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-gravatar
~/Repos/el/gnus/lisp/nngateway hides /home/horn/Repos/el/emacs/lisp/gnus/nngateway
~/Repos/el/gnus/lisp/ietf-drums hides /home/horn/Repos/el/emacs/lisp/gnus/ietf-drums
~/Repos/el/gnus/lisp/mail-parse hides /home/horn/Repos/el/emacs/lisp/gnus/mail-parse
~/Repos/el/gnus/lisp/gnus-salt hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-salt
~/Repos/el/gnus/lisp/nnimap hides /home/horn/Repos/el/emacs/lisp/gnus/nnimap
~/Repos/el/gnus/lisp/gnus-draft hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-draft
~/Repos/el/gnus/lisp/mail-source hides /home/horn/Repos/el/emacs/lisp/gnus/mail-source
~/Repos/el/gnus/lisp/messcompat hides /home/horn/Repos/el/emacs/lisp/gnus/messcompat
~/Repos/el/gnus/lisp/pop3 hides /home/horn/Repos/el/emacs/lisp/gnus/pop3
~/Repos/el/gnus/lisp/nnmaildir hides /home/horn/Repos/el/emacs/lisp/gnus/nnmaildir
~/Repos/el/gnus/lisp/nnheader hides /home/horn/Repos/el/emacs/lisp/gnus/nnheader
~/Repos/el/gnus/lisp/gnus-cite hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cite
~/Repos/el/gnus/lisp/nndiary hides /home/horn/Repos/el/emacs/lisp/gnus/nndiary
~/Repos/el/gnus/lisp/gnus-diary hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-diary
~/Repos/el/gnus/lisp/nnfolder hides /home/horn/Repos/el/emacs/lisp/gnus/nnfolder
~/Repos/el/gnus/lisp/gnus-art hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-art
~/Repos/el/gnus/lisp/gnus-demon hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-demon
~/Repos/el/gnus/lisp/mml-sec hides /home/horn/Repos/el/emacs/lisp/gnus/mml-sec
~/Repos/el/gnus/lisp/nnir hides /home/horn/Repos/el/emacs/lisp/gnus/nnir
~/Repos/el/gnus/lisp/mm-partial hides /home/horn/Repos/el/emacs/lisp/gnus/mm-partial
~/Repos/el/gnus/lisp/gnus-registry hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-registry
~/Repos/el/gnus/lisp/gnus-icalendar hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-icalendar
~/Repos/el/gnus/lisp/compface hides /home/horn/Repos/el/emacs/lisp/gnus/compface
~/Repos/el/gnus/lisp/gnus-fun hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-fun
~/Repos/el/gnus/lisp/gnus-start hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-start
~/Repos/el/gnus/lisp/smiley hides /home/horn/Repos/el/emacs/lisp/gnus/smiley
~/Repos/el/gnus/lisp/gnus-picon hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-picon
~/Repos/el/gnus/lisp/spam-report hides /home/horn/Repos/el/emacs/lisp/gnus/spam-report
~/Repos/el/gnus/lisp/nntp hides /home/horn/Repos/el/emacs/lisp/gnus/nntp
~/Repos/el/gnus/lisp/nnnil hides /home/horn/Repos/el/emacs/lisp/gnus/nnnil
~/Repos/el/gnus/lisp/nndir hides /home/horn/Repos/el/emacs/lisp/gnus/nndir
~/Repos/el/gnus/lisp/gnus-srvr hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-srvr
~/Repos/el/gnus/lisp/smime hides /home/horn/Repos/el/emacs/lisp/gnus/smime
~/Repos/el/gnus/lisp/nnvirtual hides /home/horn/Repos/el/emacs/lisp/gnus/nnvirtual
~/Repos/el/gnus/lisp/gnus-notifications hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-notifications
~/Repos/el/gnus/lisp/nnspool hides /home/horn/Repos/el/emacs/lisp/gnus/nnspool
~/Repos/el/gnus/lisp/gnus-group hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-group
~/Repos/el/gnus/lisp/gnus-bcklg hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-bcklg
~/Repos/el/gnus/lisp/gnus-util hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-util
~/Repos/el/gnus/lisp/gnus-sieve hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sieve
~/Repos/el/gnus/lisp/nndraft hides /home/horn/Repos/el/emacs/lisp/gnus/nndraft
~/Repos/el/gnus/lisp/nnagent hides /home/horn/Repos/el/emacs/lisp/gnus/nnagent
~/Repos/el/gnus/lisp/gnus-spec hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-spec
~/Repos/el/gnus/lisp/gnus-bookmark hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-bookmark
~/Repos/el/gnus/lisp/mml1991 hides /home/horn/Repos/el/emacs/lisp/gnus/mml1991
~/Repos/el/gnus/lisp/rfc2231 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2231
~/Repos/el/gnus/lisp/yenc hides /home/horn/Repos/el/emacs/lisp/gnus/yenc
~/Repos/el/gnus/lisp/gnus-undo hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-undo
~/Repos/el/gnus/lisp/ecomplete hides /home/horn/Repos/el/emacs/lisp/gnus/ecomplete
~/Repos/el/gnus/lisp/legacy-gnus-agent hides /home/horn/Repos/el/emacs/lisp/gnus/legacy-gnus-agent
~/Repos/el/gnus/lisp/utf7 hides /home/horn/Repos/el/emacs/lisp/gnus/utf7
~/Repos/el/gnus/lisp/rtree hides /home/horn/Repos/el/emacs/lisp/gnus/rtree
~/Repos/el/gnus/lisp/gnus-uu hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-uu
~/Repos/el/gnus/lisp/gnus-ml hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-ml
~/Repos/el/gnus/lisp/sieve hides /home/horn/Repos/el/emacs/lisp/gnus/sieve
~/Repos/el/gnus/lisp/gnus hides /home/horn/Repos/el/emacs/lisp/gnus/gnus
~/Repos/el/gnus/lisp/mml hides /home/horn/Repos/el/emacs/lisp/gnus/mml
~/Repos/el/gnus/lisp/message hides /home/horn/Repos/el/emacs/lisp/gnus/message
~/Repos/el/gnus/lisp/mml-smime hides /home/horn/Repos/el/emacs/lisp/gnus/mml-smime
~/Repos/el/gnus/lisp/gnus-eform hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-eform
~/Repos/el/gnus/lisp/gnus-agent hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-agent
~/Repos/el/gnus/lisp/gnus-logic hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-logic
~/Repos/el/gnus/lisp/mm-extern hides /home/horn/Repos/el/emacs/lisp/gnus/mm-extern
~/Repos/el/gnus/lisp/nndoc hides /home/horn/Repos/el/emacs/lisp/gnus/nndoc
~/Repos/el/gnus/lisp/sieve-manage hides /home/horn/Repos/el/emacs/lisp/gnus/sieve-manage
~/Repos/el/gnus/lisp/mm-decode hides /home/horn/Repos/el/emacs/lisp/gnus/mm-decode
~/Repos/el/gnus/lisp/starttls hides /home/horn/Repos/el/emacs/lisp/gnus/starttls
~/Repos/el/gnus/lisp/gnus-dired hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-dired
~/Repos/el/gnus/lisp/nnbabyl hides /home/horn/Repos/el/emacs/lisp/gnus/nnbabyl
~/Repos/el/gnus/lisp/nnmbox hides /home/horn/Repos/el/emacs/lisp/gnus/nnmbox
~/Repos/el/gnus/lisp/gnus-win hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-win
~/Repos/el/gnus/lisp/gnus-async hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-async
~/Repos/el/gnus/lisp/mm-url hides /home/horn/Repos/el/emacs/lisp/gnus/mm-url
~/Repos/el/gnus/lisp/gnus-html hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-html
~/Repos/el/gnus/lisp/gssapi hides /home/horn/Repos/el/emacs/lisp/gnus/gssapi
~/Repos/el/gnus/lisp/mml2015 hides /home/horn/Repos/el/emacs/lisp/gnus/mml2015
~/Repos/el/gnus/lisp/nnrss hides /home/horn/Repos/el/emacs/lisp/gnus/nnrss
~/Repos/el/gnus/lisp/gnus-mh hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-mh
~/Repos/el/gnus/lisp/gnus-sum hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sum
~/Repos/el/gnus/lisp/nnweb hides /home/horn/Repos/el/emacs/lisp/gnus/nnweb
~/Repos/el/gnus/lisp/mail-prsvr hides /home/horn/Repos/el/emacs/lisp/gnus/mail-prsvr
~/Repos/el/gnus/lisp/nnmairix hides /home/horn/Repos/el/emacs/lisp/gnus/nnmairix
~/Repos/el/gnus/lisp/plstore hides /home/horn/Repos/el/emacs/lisp/gnus/plstore
~/Repos/el/gnus/lisp/rfc2045 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2045
~/Repos/el/gnus/lisp/gnus-msg hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-msg
~/Repos/el/gnus/lisp/spam-wash hides /home/horn/Repos/el/emacs/lisp/gnus/spam-wash
~/Repos/el/gnus/lisp/gnus-score hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-score
~/Repos/el/gnus/lisp/mm-uu hides /home/horn/Repos/el/emacs/lisp/gnus/mm-uu
~/Repos/el/gnus/lisp/spam hides /home/horn/Repos/el/emacs/lisp/gnus/spam
~/Repos/el/gnus/lisp/mm-view hides /home/horn/Repos/el/emacs/lisp/gnus/mm-view
~/Repos/el/gnus/lisp/sieve-mode hides /home/horn/Repos/el/emacs/lisp/gnus/sieve-mode
~/Repos/el/gnus/lisp/html2text hides /home/horn/Repos/el/emacs/lisp/gnus/html2text
~/Repos/el/gnus/lisp/gnus-ems hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-ems
~/Repos/el/gnus/lisp/registry hides /home/horn/Repos/el/emacs/lisp/gnus/registry
~/Repos/el/gnus/lisp/auth-source hides /home/horn/Repos/el/emacs/lisp/gnus/auth-source
~/Repos/el/gnus/lisp/gravatar hides /home/horn/Repos/el/emacs/lisp/gnus/gravatar
~/Repos/el/gnus/lisp/flow-fill hides /home/horn/Repos/el/emacs/lisp/gnus/flow-fill
~/Repos/el/gnus/lisp/gmm-utils hides /home/horn/Repos/el/emacs/lisp/gnus/gmm-utils
~/Repos/el/gnus/lisp/mailcap hides /home/horn/Repos/el/emacs/lisp/gnus/mailcap
~/Repos/el/gnus/lisp/gnus-delay hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-delay
~/Repos/el/gnus/lisp/mm-bodies hides /home/horn/Repos/el/emacs/lisp/gnus/mm-bodies
~/Repos/el/gnus/lisp/mm-archive hides /home/horn/Repos/el/emacs/lisp/gnus/mm-archive
~/Repos/el/gnus/lisp/rfc1843 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc1843
~/Repos/el/gnus/lisp/gnus-kill hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-kill
~/Repos/el/gnus/lisp/qp hides /home/horn/Repos/el/emacs/lisp/gnus/qp
~/Repos/el/gnus/lisp/score-mode hides /home/horn/Repos/el/emacs/lisp/gnus/score-mode
~/Repos/el/gnus/lisp/gnus-topic hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-topic
~/Repos/el/gnus/lisp/gnus-cache hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cache
~/Repos/el/gnus/lisp/nnmail hides /home/horn/Repos/el/emacs/lisp/gnus/nnmail
~/Repos/el/gnus/lisp/gnus-vm hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-vm
~/Repos/el/gnus/lisp/gnus-sync hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sync
~/Repos/el/gnus/lisp/nnoo hides /home/horn/Repos/el/emacs/lisp/gnus/nnoo
~/Repos/el/gnus/lisp/nnregistry hides /home/horn/Repos/el/emacs/lisp/gnus/nnregistry
~/Repos/el/gnus/lisp/gnus-dup hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-dup
~/Repos/el/gnus/lisp/parse-time hides /home/horn/Repos/el/emacs/lisp/calendar/parse-time
~/Repos/el/gnus/lisp/time-date hides /home/horn/Repos/el/emacs/lisp/calendar/time-date

Features:
(shadow sort gnus-cite emacsbug sendmail nndraft nnmh rot13 utf-7 nnml
nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-cache
gnus-demon nntp spam spam-stat gnus-uu yenc gnus-msg gnus-gravatar
mail-extr gravatar gnus-topic nnir gnus-registry registry eieio-base
th-private multiple-cursors-core s ucs-normalize warnings tar-mode
autoload lisp-mnt hl-line gnutls mm-archive network-stream nsm starttls
url-http url-gw url-auth url-handlers company-files company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-capf company-cmake company-ropemacs
company-xcode company-clang company-semantic company-eclim
company-template company-css company-nxml company-bbdb
highlight-parentheses company finder-inf stratego-mode greql-mode
tg-mode generic preview-latex tex-site auto-loads cider tramp-sh
cider-mode cider-repl cider-eldoc cider-interaction arc-mode
archive-mode cider-doc org-table cider-test cider-stacktrace
cider-client nrepl-client queue cider-util ewoc etags xref clojure-mode
imenu paredit aggressive-indent names edebug epa-file epa epg rdictcc
ox-reveal ox-latex ox-icalendar ox-html ox-ascii ox-publish ox
org-element google-contacts-message google-contacts derived url-cache
google-oauth google-contacts-gnus gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source tls utf7 netrc nnoo parse-time gnus-spec
gnus-int gnus-range gnus-win gnus gnus-ems gnus-compat nnheader em-term
term ehelp esh-opt esh-ext esh-util highlight-symbol boxquote rect
ecomplete message rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils
gmm-utils mailheader edit-server server haskell-yas yasnippet help-mode
cl disp-table pdf-tools cus-edit cus-start cus-load pdf-view jka-compr
pdf-cache pdf-info tq pdf-util image-mode browse-kill-ring recentf
tree-widget wid-edit helm-projectile helm-files image-dired tramp
tramp-compat tramp-loaddefs trampver shell dired-x dired-aux ffap
helm-tags helm-bookmark helm-adaptive helm-info helm-net browse-url xml
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source gnus-util mm-util mail-prsvr
password-cache url-vars mailcap bookmark pp helm-help helm-org org
org-macro org-footnote org-pcomplete pcomplete org-list org-faces
org-entities noutline outline org-version ob-emacs-lisp ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs helm-external helm-buffers helm-match-plugin helm-grep
helm-regexp helm-plugin grep helm-elscreen helm-utils dired compile
comint ansi-color ring helm-locate helm cl-macs helm-source eieio-compat
eieio eieio-core cl-generic byte-opt gv bytecomp byte-compile cl-extra
seq cconv pcase projectile ibuf-ext ibuffer thingatpt helm-config
async-bytecomp async helm-aliases easy-mmode iedit iedit-lib cap-words
superword subword saveplace savehist paren icomplete mb-depth
smart-mode-line-respectful-theme smart-mode-line-light-theme
rich-minority smart-mode-line mule-util dash rx bs windmove elec-pair
gnus-load tsdh-light-theme edmacro kmacro cl-loaddefs cl-lib
memory-usage-autoloads advice help-fns info easymenu package epg-config
time-date tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 1307951 173351)
 (symbols 48 57846 16)
 (miscs 40 157 326)
 (strings 32 206769 68015)
 (string-bytes 1 6588927)
 (vectors 16 85127)
 (vector-slots 8 2013019 109853)
 (floats 8 697 695)
 (intervals 56 95957 3073)
 (buffers 976 30)
 (heap 1024 130073 7756))





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06  6:23 bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes Tassilo Horn
@ 2015-03-06  8:29 ` Michael Albinus
  2015-03-06  8:53   ` Tassilo Horn
  0 siblings, 1 reply; 27+ messages in thread
From: Michael Albinus @ 2015-03-06  8:29 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 20015

Tassilo Horn <tsdh@gnu.org> writes:

Hi Tassilo,

> Since the recent TRAMP changes on master, emacs startup takes about a
> minute.  Starting it with
>
>   emacs -Q --eval "(progn (setq debug-on-quit t) (require 'tramp))"
>
> then waiting till it hangs and hitting C-g reveals:
>
> --8<---------------cut here---------------start------------->8---
> Debugger entered--Lisp error: (quit)
>   call-process("ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist")

What happens when you apply "ssh -o ControlPath=%C host.does.not.exist"
locally? Same delay for one minute?

Which ssh version do you run locally? Check with "ssh -V".

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06  8:29 ` Michael Albinus
@ 2015-03-06  8:53   ` Tassilo Horn
  2015-03-06  9:23     ` Michael Albinus
  0 siblings, 1 reply; 27+ messages in thread
From: Tassilo Horn @ 2015-03-06  8:53 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 20015

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Michael,

>> Since the recent TRAMP changes on master, emacs startup takes about a
>> minute.  Starting it with
>>
>>   emacs -Q --eval "(progn (setq debug-on-quit t) (require 'tramp))"
>>
>> then waiting till it hangs and hitting C-g reveals:
>>
>> --8<---------------cut here---------------start------------->8---
>> Debugger entered--Lisp error: (quit)
>>   call-process("ssh" nil t nil "-o" "ControlPath=%C" "host.does.not.exist")
>
> What happens when you apply "ssh -o ControlPath=%C
> host.does.not.exist" locally? Same delay for one minute?

Yes, or rather it are exactly 30 seconds.

% time ssh -o ControlPath=%C host.does.not.exist
ssh: Could not resolve hostname host.does.not.exist: Name or service not known
ssh -o ControlPath=%C host.does.not.exist  0,00s user 0,00s system 0%
cpu 30,019 total

> Which ssh version do you run locally? Check with "ssh -V".

% ssh -V                           
OpenSSH_6.7p1, OpenSSL 1.0.2 22 Jan 2015

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06  8:53   ` Tassilo Horn
@ 2015-03-06  9:23     ` Michael Albinus
  2015-03-06 12:39       ` Tassilo Horn
  0 siblings, 1 reply; 27+ messages in thread
From: Michael Albinus @ 2015-03-06  9:23 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 20015

Tassilo Horn <tsdh@gnu.org> writes:

> Hi Michael,

Hi Tassilo,

> % time ssh -o ControlPath=%C host.does.not.exist
> ssh: Could not resolve hostname host.does.not.exist: Name or service not known
> ssh -o ControlPath=%C host.does.not.exist  0,00s user 0,00s system 0%
> cpu 30,019 total

Does it behave better, if you apply

ssh -o ConnectTimeout=1 -o ControlPath=%C host.does.not.exist

>> Which ssh version do you run locally? Check with "ssh -V".
>
> % ssh -V                           
> OpenSSH_6.7p1, OpenSSL 1.0.2 22 Jan 2015

Yes, that's exactliy what Tramp tries to detect.

> Bye,
> Tassilo

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06  9:23     ` Michael Albinus
@ 2015-03-06 12:39       ` Tassilo Horn
  2015-03-06 13:45         ` Ivan Shmakov
  2015-03-06 14:38         ` Andreas Schwab
  0 siblings, 2 replies; 27+ messages in thread
From: Tassilo Horn @ 2015-03-06 12:39 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 20015

Michael Albinus <michael.albinus@gmx.de> writes:

> Tassilo Horn <tsdh@gnu.org> writes:
>
>> Hi Michael,
>
> Hi Tassilo,
>
>> % time ssh -o ControlPath=%C host.does.not.exist
>> ssh: Could not resolve hostname host.does.not.exist: Name or service not known
>> ssh -o ControlPath=%C host.does.not.exist  0,00s user 0,00s system 0%
>> cpu 30,019 total
>
> Does it behave better, if you apply
>
> ssh -o ConnectTimeout=1 -o ControlPath=%C host.does.not.exist

No, that doesn't seem to have an effect.

--8<---------------cut here---------------start------------->8---
% ssh -vvv -o ConnectTimeout=0 -o ControlPath=%C host.does.not.exist
OpenSSH_6.7p1, OpenSSL 1.0.2 22 Jan 2015
debug1: Reading configuration data /home/horn/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: auto-mux: Trying existing master
debug1: Control socket "89ac5542788054b0379ade9250bf39d75698ff8a" does not exist
# HERE IT HANGS again for 30 seconds
ssh: Could not resolve hostname host.does.not.exist: Name or service not known
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 12:39       ` Tassilo Horn
@ 2015-03-06 13:45         ` Ivan Shmakov
  2015-03-06 14:38         ` Andreas Schwab
  1 sibling, 0 replies; 27+ messages in thread
From: Ivan Shmakov @ 2015-03-06 13:45 UTC (permalink / raw)
  To: 20015

>>>>> Tassilo Horn <tsdh@gnu.org> writes:

[…]

 > # HERE IT HANGS again for 30 seconds
 > ssh: Could not resolve hostname host.does.not.exist: Name or service
 > not known

	Most commonly, that means that some of the DNS hosts listed in
	/etc/resolv.conf fail to respond promptly; please ensure that
	the contents of that file matches the intended configuration.

	Try using $ dig @2001:db8:42::53:53 host.name.invalid (where
	2001:db8:42::53:53 is a DNS IP address, as given with
	‘nameserver’ lines in /etc/resolv.conf) to find out which of the
	servers results in this behavior.

-- 
FSF associate member #7257  http://boycottsystemd.org/  … 3013 B6A0 230E 334A





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 12:39       ` Tassilo Horn
  2015-03-06 13:45         ` Ivan Shmakov
@ 2015-03-06 14:38         ` Andreas Schwab
  2015-03-06 14:57           ` Tassilo Horn
  1 sibling, 1 reply; 27+ messages in thread
From: Andreas Schwab @ 2015-03-06 14:38 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Michael Albinus, 20015

Tassilo Horn <tsdh@gnu.org> writes:

> # HERE IT HANGS again for 30 seconds
> ssh: Could not resolve hostname host.does.not.exist: Name or service not known

What happens if you do "getent ahosts host.does.not.exist"?

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 14:38         ` Andreas Schwab
@ 2015-03-06 14:57           ` Tassilo Horn
  2015-03-06 16:43             ` Andreas Schwab
  0 siblings, 1 reply; 27+ messages in thread
From: Tassilo Horn @ 2015-03-06 14:57 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Michael Albinus, 20015

Andreas Schwab <schwab@linux-m68k.org> writes:

>> # HERE IT HANGS again for 30 seconds
>> ssh: Could not resolve hostname host.does.not.exist: Name or service not known
>
> What happens if you do "getent ahosts host.does.not.exist"?

% time getent ahosts host.does.not.exist
getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 14:57           ` Tassilo Horn
@ 2015-03-06 16:43             ` Andreas Schwab
  2015-03-06 18:05               ` Stefan Monnier
  2015-03-06 19:51               ` Tassilo Horn
  0 siblings, 2 replies; 27+ messages in thread
From: Andreas Schwab @ 2015-03-06 16:43 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Michael Albinus, 20015

Tassilo Horn <tsdh@gnu.org> writes:

> % time getent ahosts host.does.not.exist
> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total

Which means your system is misconfigured.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 16:43             ` Andreas Schwab
@ 2015-03-06 18:05               ` Stefan Monnier
  2015-03-06 19:17                 ` Andreas Schwab
  2015-03-06 19:51               ` Tassilo Horn
  1 sibling, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2015-03-06 18:05 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Tassilo Horn, Michael Albinus, 20015

>> % time getent ahosts host.does.not.exist
>> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total
> Which means your system is misconfigured.

But that's no excuse to impose such a 30s timeout on the user who did
not actually do anything that would explicitly trigger this problem.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 18:05               ` Stefan Monnier
@ 2015-03-06 19:17                 ` Andreas Schwab
  2015-03-06 22:34                   ` Daniel Colascione
  0 siblings, 1 reply; 27+ messages in thread
From: Andreas Schwab @ 2015-03-06 19:17 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Tassilo Horn, Michael Albinus, 20015

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>>> % time getent ahosts host.does.not.exist
>>> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total
>> Which means your system is misconfigured.
>
> But that's no excuse to impose such a 30s timeout on the user who did
> not actually do anything that would explicitly trigger this problem.

A working hostname lookup is a fundamental part of the system.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 16:43             ` Andreas Schwab
  2015-03-06 18:05               ` Stefan Monnier
@ 2015-03-06 19:51               ` Tassilo Horn
  2015-03-06 20:07                 ` Andreas Schwab
  2015-03-06 20:08                 ` Tassilo Horn
  1 sibling, 2 replies; 27+ messages in thread
From: Tassilo Horn @ 2015-03-06 19:51 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Michael Albinus, 20015

Andreas Schwab <schwab@linux-m68k.org> writes:

>> % time getent ahosts host.does.not.exist
>> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total
>
> Which means your system is misconfigured.

Keen to share at what I should have a look?  It seems I have that issue
only at home, and there /etc/resolv.conf names my Telekom/Speedport LTE
router as nameserver.  That thing's a pain in the ass for several
reasons, so this might be (1+ reasons).

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 19:51               ` Tassilo Horn
@ 2015-03-06 20:07                 ` Andreas Schwab
  2015-03-06 20:08                 ` Tassilo Horn
  1 sibling, 0 replies; 27+ messages in thread
From: Andreas Schwab @ 2015-03-06 20:07 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Michael Albinus, 20015

Tassilo Horn <tsdh@gnu.org> writes:

> Andreas Schwab <schwab@linux-m68k.org> writes:
>
>>> % time getent ahosts host.does.not.exist
>>> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total
>>
>> Which means your system is misconfigured.
>
> Keen to share at what I should have a look?

Try tcpdump to watch the dns traffic.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 19:51               ` Tassilo Horn
  2015-03-06 20:07                 ` Andreas Schwab
@ 2015-03-06 20:08                 ` Tassilo Horn
  1 sibling, 0 replies; 27+ messages in thread
From: Tassilo Horn @ 2015-03-06 20:08 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: 20015-done, Michael Albinus

Tassilo Horn <tsdh@gnu.org> writes:

>>> % time getent ahosts host.does.not.exist getent ahosts
>>> host.does.not.exist 0,00s user 0,00s system 0% cpu 30,013 total
>>
>> Which means your system is misconfigured.
>
> Keen to share at what I should have a look?  It seems I have that
> issue only at home, and there /etc/resolv.conf names my
> Telekom/Speedport LTE router as nameserver.  That thing's a pain in
> the ass for several reasons, so this might be (1+ reasons).

Yeah, of course it's the crappy speedport again.  When I use the google
nameserver 8.8.8.8 instead, then getent and ssh return almost
immediately.

Sorry for the noise.

Bye,
Tassilo

PS: Gonna write a letter.  "Dear Telekom, today your crappy products
again wasted time of at least four free software developers.  The world
could be a so much better place if you gave at least half-way working
hardware to your dearly paying customers..."





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 19:17                 ` Andreas Schwab
@ 2015-03-06 22:34                   ` Daniel Colascione
  2015-03-06 22:45                     ` Daniel Colascione
  2015-03-07  2:34                     ` Stefan Monnier
  0 siblings, 2 replies; 27+ messages in thread
From: Daniel Colascione @ 2015-03-06 22:34 UTC (permalink / raw)
  To: Andreas Schwab, Stefan Monnier; +Cc: Tassilo Horn, Michael Albinus, 20015

[-- Attachment #1: Type: text/plain, Size: 883 bytes --]

On 03/06/2015 11:17 AM, Andreas Schwab wrote:
> Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
> 
>>>> % time getent ahosts host.does.not.exist
>>>> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total
>>> Which means your system is misconfigured.
>>
>> But that's no excuse to impose such a 30s timeout on the user who did
>> not actually do anything that would explicitly trigger this problem.
> 
> A working hostname lookup is a fundamental part of the system.

In theory. In practice, lookup is broken all the time, and for good
reason. We can't always know right away when we don't have connectivity.
What if I'm on a train and enter a tunnel? Connectivity is interrupted
for a little while, but not enough to trigger OS network
reconfiguration. It's inexcusable for Emacs to block for 30 seconds on
DNS resolution in this case.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 22:34                   ` Daniel Colascione
@ 2015-03-06 22:45                     ` Daniel Colascione
  2015-03-07 11:35                       ` Michael Albinus
  2015-03-07  2:34                     ` Stefan Monnier
  1 sibling, 1 reply; 27+ messages in thread
From: Daniel Colascione @ 2015-03-06 22:45 UTC (permalink / raw)
  To: Andreas Schwab, Stefan Monnier; +Cc: Tassilo Horn, Michael Albinus, 20015

[-- Attachment #1: Type: text/plain, Size: 1238 bytes --]

On 03/06/2015 02:34 PM, Daniel Colascione wrote:
> On 03/06/2015 11:17 AM, Andreas Schwab wrote:
>> Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
>>
>>>>> % time getent ahosts host.does.not.exist
>>>>> getent ahosts host.does.not.exist  0,00s user 0,00s system 0% cpu 30,013 total
>>>> Which means your system is misconfigured.
>>>
>>> But that's no excuse to impose such a 30s timeout on the user who did
>>> not actually do anything that would explicitly trigger this problem.
>>
>> A working hostname lookup is a fundamental part of the system.
> 
> In theory. In practice, lookup is broken all the time, and for good
> reason. We can't always know right away when we don't have connectivity.
> What if I'm on a train and enter a tunnel? Connectivity is interrupted
> for a little while, but not enough to trigger OS network
> reconfiguration. It's inexcusable for Emacs to block for 30 seconds on
> DNS resolution in this case.

It's also unacceptable to start six (by my count) ssh subprocesses,
especially on systems like Cygwin, where process creation is very slow.
At the very least, this work needs to be delayed until someone tries to
use an ssh connection method, and the result should be called.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 22:34                   ` Daniel Colascione
  2015-03-06 22:45                     ` Daniel Colascione
@ 2015-03-07  2:34                     ` Stefan Monnier
  1 sibling, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2015-03-07  2:34 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: Andreas Schwab, Tassilo Horn, Michael Albinus, 20015

> reconfiguration. It's inexcusable for Emacs to block for 30 seconds on
> DNS resolution in this case.


Especially since this can happen in cases where there is no need for any
network communication (e.g. loading tramp for compilation purposes, or
for access via /sudo:, ...).


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-06 22:45                     ` Daniel Colascione
@ 2015-03-07 11:35                       ` Michael Albinus
  2015-03-07 12:17                         ` Eli Zaretskii
  2015-03-09  4:41                         ` Stefan Monnier
  0 siblings, 2 replies; 27+ messages in thread
From: Michael Albinus @ 2015-03-07 11:35 UTC (permalink / raw)
  To: Daniel Colascione; +Cc: Tassilo Horn, Andreas Schwab, 20015

Daniel Colascione <dancol@dancol.org> writes:

> It's also unacceptable to start six (by my count) ssh subprocesses,
> especially on systems like Cygwin, where process creation is very slow.

The code calls it only 3 times. Due to the autoload, the code of the
defconst was eval'ed twice, so it ends up in 6 calls.

I've changed it to a defcustom and checked it again. Now it is called
only 3 times, and it is called only when you open a remote file
(tramp.el is loaded).

> At the very least, this work needs to be delayed until someone tries to
> use an ssh connection method, and the result should be called.

As said above. Also not called when Emacs compiles in batch mode, and alike.

I would like to avoid these calls completely, if somebody could tell me
a robust test for knowing which kind of ControlMaster, ControlPath and
ControlPersist options are supported by the local ssh stanza. And no, I
don't want to check the ssh version; this isn't robust.

Would it be safe to install the patch in the emacs-24 branch? The change
which made Tassilo annoyed was introduced for Emacs 24.5, see Bug#19702.

--8<---------------cut here---------------start------------->8---
*** /home/albinus/src/emacs-24/lisp/net/tramp.el.~emacs-24~	2015-03-07 12:31:29.053902763 +0100
--- /home/albinus/src/emacs-24/lisp/net/tramp.el	2015-03-07 12:23:14.799675963 +0100
***************
*** 307,313 ****
  useful only in combination with `tramp-default-proxies-alist'.")
  
  ;;;###tramp-autoload
! (defconst tramp-ssh-controlmaster-options
    (let ((result "")
  	(case-fold-search t))
      (ignore-errors
--- 307,313 ----
  useful only in combination with `tramp-default-proxies-alist'.")
  
  ;;;###tramp-autoload
! (defcustom tramp-ssh-controlmaster-options
    (let ((result "")
  	(case-fold-search t))
      (ignore-errors
***************
*** 333,339 ****
  	      (setq result (concat result " -o ControlPersist=no")))))))
      result)
      "Call ssh to detect whether it supports the Control* arguments.
! Return a string to be used in `tramp-methods'.")
  
  ;;;###tramp-autoload
  (defcustom tramp-use-ssh-controlmaster-options
--- 333,342 ----
  	      (setq result (concat result " -o ControlPersist=no")))))))
      result)
      "Call ssh to detect whether it supports the Control* arguments.
! Return a string to be used in `tramp-methods'."
!     :group 'tramp
!     :version "24.5"
!     :type 'string)
  
  ;;;###tramp-autoload
  (defcustom tramp-use-ssh-controlmaster-options
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-07 11:35                       ` Michael Albinus
@ 2015-03-07 12:17                         ` Eli Zaretskii
  2015-03-07 20:08                           ` Michael Albinus
  2015-03-09  4:41                         ` Stefan Monnier
  1 sibling, 1 reply; 27+ messages in thread
From: Eli Zaretskii @ 2015-03-07 12:17 UTC (permalink / raw)
  To: Michael Albinus; +Cc: tsdh, schwab, 20015

> From: Michael Albinus <michael.albinus@gmx.de>
> Date: Sat, 07 Mar 2015 12:35:20 +0100
> Cc: Tassilo Horn <tsdh@gnu.org>, Andreas Schwab <schwab@linux-m68k.org>,
> 	20015@debbugs.gnu.org
> 
> Would it be safe to install the patch in the emacs-24 branch?

Yes, thanks.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-07 12:17                         ` Eli Zaretskii
@ 2015-03-07 20:08                           ` Michael Albinus
  0 siblings, 0 replies; 27+ messages in thread
From: Michael Albinus @ 2015-03-07 20:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: tsdh, schwab, 20015

Eli Zaretskii <eliz@gnu.org> writes:

>> Would it be safe to install the patch in the emacs-24 branch?
>
> Yes, thanks.

Done. In the master branch, I'll try further optimizations.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-07 11:35                       ` Michael Albinus
  2015-03-07 12:17                         ` Eli Zaretskii
@ 2015-03-09  4:41                         ` Stefan Monnier
  2015-03-09 21:11                           ` Michael Albinus
  1 sibling, 1 reply; 27+ messages in thread
From: Stefan Monnier @ 2015-03-09  4:41 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Tassilo Horn, Andreas Schwab, 20015

> only 3 times, and it is called only when you open a remote file
> (tramp.el is loaded).

Loading tramp.el does not guarantee we want to open a remote file (it
could be a local file via /su: for example).

> I would like to avoid these calls completely, if somebody could tell me
> a robust test for knowing which kind of ControlMaster, ControlPath and
> ControlPersist options are supported by the local ssh stanza. And no, I
> don't want to check the ssh version; this isn't robust.

I like using "" for tramp-ssh-controlmaster-options, FWIW ;-)

FWIW, I find that for OpenSSH on Debian, "ssh -o
<optionname>=<optiovalue>" never waits and gives different outputs
("command-line: line 0: Bad configuration option: <optionname>",
"command-line line 0: unsupported option <optionvalue>", or the help
text).  Not sure if it's robust for other systems and other versions of ssh.


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-09  4:41                         ` Stefan Monnier
@ 2015-03-09 21:11                           ` Michael Albinus
  2015-03-15 15:14                             ` Michael Albinus
  0 siblings, 1 reply; 27+ messages in thread
From: Michael Albinus @ 2015-03-09 21:11 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Tassilo Horn, Andreas Schwab, 20015

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> only 3 times, and it is called only when you open a remote file
>> (tramp.el is loaded).
>
> Loading tramp.el does not guarantee we want to open a remote file (it
> could be a local file via /su: for example).

Yes. In Emacs 25, I intend to delay evaluation of the code until it is
really needed. (As usual, it will take some days; I'm too busy in real life).

>> I would like to avoid these calls completely, if somebody could tell me
>> a robust test for knowing which kind of ControlMaster, ControlPath and
>> ControlPersist options are supported by the local ssh stanza. And no, I
>> don't want to check the ssh version; this isn't robust.
>
> I like using "" for tramp-ssh-controlmaster-options, FWIW ;-)
>
> FWIW, I find that for OpenSSH on Debian, "ssh -o
> <optionname>=<optiovalue>" never waits and gives different outputs
> ("command-line: line 0: Bad configuration option: <optionname>",
> "command-line line 0: unsupported option <optionvalue>", or the help
> text).  Not sure if it's robust for other systems and other versions of ssh.

That's what I do when checking ControlMaster and ControlPersist. But the
check for ControlPath=%C requires also a hostname, unfortunately.

>         Stefan

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-09 21:11                           ` Michael Albinus
@ 2015-03-15 15:14                             ` Michael Albinus
  2015-03-16 15:24                               ` Stefan Monnier
  2015-03-16 19:20                               ` Michael Albinus
  0 siblings, 2 replies; 27+ messages in thread
From: Michael Albinus @ 2015-03-15 15:14 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 20015-done, Andreas Schwab, Tassilo Horn

Version: 25.1

Michael Albinus <michael.albinus@gmx.de> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>> only 3 times, and it is called only when you open a remote file
>>> (tramp.el is loaded).
>>
>> Loading tramp.el does not guarantee we want to open a remote file (it
>> could be a local file via /su: for example).
>
> Yes. In Emacs 25, I intend to delay evaluation of the code until it is
> really needed. (As usual, it will take some days; I'm too busy in real life).

I've committed a respective patch to the master branch, marking this bug
as fixed.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-15 15:14                             ` Michael Albinus
@ 2015-03-16 15:24                               ` Stefan Monnier
  2015-03-16 19:20                               ` Michael Albinus
  1 sibling, 0 replies; 27+ messages in thread
From: Stefan Monnier @ 2015-03-16 15:24 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 20015-done, Andreas Schwab, Tassilo Horn

> I've committed a respective patch to the master branch, marking this bug
> as fixed.

Thanks,


        Stefan





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-15 15:14                             ` Michael Albinus
  2015-03-16 15:24                               ` Stefan Monnier
@ 2015-03-16 19:20                               ` Michael Albinus
  2015-03-16 19:31                                 ` Tassilo Horn
  1 sibling, 1 reply; 27+ messages in thread
From: Michael Albinus @ 2015-03-16 19:20 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Andreas Schwab, 20015

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Tassilo,

> I've committed a respective patch to the master branch, marking this bug
> as fixed.

I'm still thinking how to avoid the timeout from an improper DNS. What
happens with your sucking DNS server, if you call

# ssh -p 23 -o ControlPath=%C localhost

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-16 19:20                               ` Michael Albinus
@ 2015-03-16 19:31                                 ` Tassilo Horn
  2015-03-17  9:21                                   ` Michael Albinus
  0 siblings, 1 reply; 27+ messages in thread
From: Tassilo Horn @ 2015-03-16 19:31 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Andreas Schwab, 20015

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Michael,

>> I've committed a respective patch to the master branch, marking this
>> bug as fixed.
>
> I'm still thinking how to avoid the timeout from an improper DNS. What
> happens with your sucking DNS server, if you call
>
> # ssh -p 23 -o ControlPath=%C localhost

That returns immediately with the same exit code but a different
message:

[horn@thinkpad-t440p][255][:-(][9675]
[~]% ssh -p 23 -o ControlPath=%C host.does.not.exist
ssh: Could not resolve hostname host.does.not.exist: Name or service not known
[horn@thinkpad-t440p][255][:-(][9676]
[~]% ssh -p 23 -o ControlPath=%C localhost          
ssh: connect to host localhost port 23: Connection refused

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 27+ messages in thread

* bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes
  2015-03-16 19:31                                 ` Tassilo Horn
@ 2015-03-17  9:21                                   ` Michael Albinus
  0 siblings, 0 replies; 27+ messages in thread
From: Michael Albinus @ 2015-03-17  9:21 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Andreas Schwab, 20015

Tassilo Horn <tsdh@gnu.org> writes:

> Hi Michael,

Hi Tassilo,

>> I'm still thinking how to avoid the timeout from an improper DNS. What
>> happens with your sucking DNS server, if you call
>>
>> # ssh -p 23 -o ControlPath=%C localhost
>
> That returns immediately with the same exit code but a different
> message:

No problem, I parse for "unknown.+key". I've committed a corresponding
patch to master.

> Bye,
> Tassilo

Best regards, Michael.





^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2015-03-17  9:21 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-06  6:23 bug#20015: 25.0.50; Slow Emacs startup after recent TRAMP changes Tassilo Horn
2015-03-06  8:29 ` Michael Albinus
2015-03-06  8:53   ` Tassilo Horn
2015-03-06  9:23     ` Michael Albinus
2015-03-06 12:39       ` Tassilo Horn
2015-03-06 13:45         ` Ivan Shmakov
2015-03-06 14:38         ` Andreas Schwab
2015-03-06 14:57           ` Tassilo Horn
2015-03-06 16:43             ` Andreas Schwab
2015-03-06 18:05               ` Stefan Monnier
2015-03-06 19:17                 ` Andreas Schwab
2015-03-06 22:34                   ` Daniel Colascione
2015-03-06 22:45                     ` Daniel Colascione
2015-03-07 11:35                       ` Michael Albinus
2015-03-07 12:17                         ` Eli Zaretskii
2015-03-07 20:08                           ` Michael Albinus
2015-03-09  4:41                         ` Stefan Monnier
2015-03-09 21:11                           ` Michael Albinus
2015-03-15 15:14                             ` Michael Albinus
2015-03-16 15:24                               ` Stefan Monnier
2015-03-16 19:20                               ` Michael Albinus
2015-03-16 19:31                                 ` Tassilo Horn
2015-03-17  9:21                                   ` Michael Albinus
2015-03-07  2:34                     ` Stefan Monnier
2015-03-06 19:51               ` Tassilo Horn
2015-03-06 20:07                 ` Andreas Schwab
2015-03-06 20:08                 ` Tassilo Horn

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).