From: Luke <mideniko1234-org@yahoo.co.uk>
To: emacs-orgmode@gnu.org
Subject: Re: Possible bug: Emacs hangs on (require 'org)
Date: Wed, 23 Nov 2016 10:56:33 +0800 [thread overview]
Message-ID: <o130gt$f3v$1@blaine.gmane.org> (raw)
In-Reply-To: <87oa16x6lw.fsf@ericabrahamsen.net>
On 23/11/16 10:39, Eric Abrahamsen wrote:
> Luke <mideniko1234-org@yahoo.co.uk> writes:
>
>> I have a strange situation on my laptop.
>>
>> I'm running Ubuntu 16.04, with Emacs 24.5.1. I'm also using the latest
>> development branch from the org-mode git repository (latest changes
>> pulled today).
>>
>> Recently, for some unknown reason, emacs suddenly started to hang on
>> startup. Placing some output messages in my .emacs file I was able to
>> narrow it down to this line:
>>
>> (require 'org)
>>
>> Loading org-mode hangs Emacs for some reason. If I remove the above
>> line from .emacs then Emacs will start as normal (although without
>> org-mode, obviously).
>>
>> I tried creating a minimal-org.el file with the following contents:
>>
>> ;; activate debugging
>> (setq debug-on-error t
>> debug-on-signal nil
>> debug-on-quit nil)
>>
>> ;; add latest org-mode to load path
>> (add-to-list 'load-path (expand-file-name "~/elisp/org-mode/lisp"))
>> (add-to-list 'load-path (expand-file-name
>> "~/elisp/org-mode/contrib/lisp" t))
>>
>> And then running:
>>
>> $ emacs -Q -l minimal-org.el
>>
>> ...but I still get the same result (Emacs hangs when I run `M-x
>> (require 'org)`).
>>
>> Can anyone help tell me what's wrong, or suggest how I try and track
>> down the problem?
>
> You're setting debug-on-quit to nil, but it's likely that setting it to
> t is exactly what you need. Toggle it to t, eval (require 'org), then
> while it's hung hit C-g. You should get a backtrace showing you what
> Emacs was actually doing when you quit.
>
> Eric
>
>
>
Thanks to Eric for the debugging tip. Below is the backtrace that was
produced. It looks like tramp is trying to make some connection to the
host-name "host.does.not.exist" (which will obviously fail).
This makes sense, because when I disable networking then Emacs starts
immediately and doesn't hang. I'm not sure how to fix this though.
=====================================================================
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 (zerop (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 (zerop (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 (zerop (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 (zerop (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 (zerop (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 (zerop (length result)) nil (let (...) (save-current-buffer ...
...)) (let (...) (save-current-buffer ... ...)))))) (error nil)) result)
(defvar tramp-ssh-controlmaster-options (let ((result "")
(case-fold-search t)) (condition-case nil (progn (if (executable-find
"ssh") (progn (let (...) (save-current-buffer ... ...)) (if (zerop ...)
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
"/usr/share/emacs/24.5/lisp/net/tramp-loaddefs.el" nil t) ; Reading at
buffer position 7072
load-with-code-conversion("/usr/share/emacs/24.5/lisp/net/tramp-loaddefs.el"
"/usr/share/emacs/24.5/lisp/net/tramp-loaddefs.el" nil t)
require(tramp-loaddefs)
byte-code("\300\301!\207" [require tramp-loaddefs] 2)
byte-code("\300\301\302\303#\210\300\304\305\306#\210\300\304\307\306#\210\300\304\310\306#\210\300\304\311\306#\210\300\304\312\306#\210\300\304\313\306#\210\300\314\315\316#\210\300\317\320\316#\210\300\304\321\306#\210\300\322\323\306#\210\300\324\325\306#\210\300\322\326\306#\210\300\327\330\316#\210\300\331\332\303#\210\300\331\333\303#\210\300\331\334\303#\210\300\331\335\303#\210\300\331\336\303#\210\300\337\340\341#\210\342\343!\203\206
=====================================================================
next prev parent reply other threads:[~2016-11-23 2:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-23 1:31 Possible bug: Emacs hangs on (require 'org) Luke
2016-11-23 2:39 ` Eric Abrahamsen
2016-11-23 2:56 ` Luke [this message]
2016-11-23 3:30 ` Eric Abrahamsen
2016-11-23 2:43 ` Luke
-- strict thread matches above, loose matches on Subject: below --
2017-01-06 14:30 Martin Zuther
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='o130gt$f3v$1@blaine.gmane.org' \
--to=mideniko1234-org@yahoo.co.uk \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.