GNU bug report logs -
#5705
23.1.93; recursive load error when loading tramp
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5705 in the body.
You can then email your comments to 5705 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5705
; Package
emacs
.
(Thu, 11 Mar 2010 14:56:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Paul Pogonyshev <p.pogonyshev <at> anakreon.net>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 11 Mar 2010 14:56:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Severity: important
Occasionally, I "break" Emacs after which it starts printing the
following message in the minibuffer in response to any command
requiring it to open a file:
require: Recursive load: "/usr/local/share/emacs/23.1.93/lisp/net/tramp.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp-cmds.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp-cmds.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp-cmds.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp-cmds.elc", "/usr/local/share/emacs/23.1.93/lisp/net/tramp.elc"
This includes C-x C-f, C-x C-c and many others. I.e. after this Emacs
becomes unusable and even impossible to quit cleanly. I have to kill
it from command line with 'killall emacs'.
I'm pretty certain this is caused by hitting C-g when C-x C-f loads a
directory (I'm using ido-mode, so completions are loaded all the
time). Looks like some place lacks 'unwind-protect' (or something
else similar to try..finally), so that a feature is marked as loaded
in one place, but not in another.
So, to reproduce:
- enable ido-mode;
- try hitting C-x C-f, navigate into a particularly large directory
and hit C-g while completion list is being built.
You may need to repeat the second step several times as the bug
doesn't seem to deterministic.
Cannot provide normal standard bug information, because after this
happens practically nothing in Emacs works, including M-x report-bug:
window is opened, but it is empty except for From/To/Subject headers.
This has been happening for quite a lot of time, so this bug is not
something new in recent versions.
Paul
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5705
; Package
emacs
.
(Thu, 11 Mar 2010 16:07:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 5705 <at> debbugs.gnu.org (full text, mbox):
Paul Pogonyshev <p.pogonyshev <at> anakreon.net> writes:
> So, to reproduce:
> - enable ido-mode;
> - try hitting C-x C-f, navigate into a particularly large directory
> and hit C-g while completion list is being built.
>
> You may need to repeat the second step several times as the bug
> doesn't seem to deterministic.
Some something like
M-x ido-mode RET
C-x C-f /usr/bin/a TAB
should produce the bug? I haven't been able to see it this way.
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5705
; Package
emacs
.
(Thu, 11 Mar 2010 17:04:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 5705 <at> debbugs.gnu.org (full text, mbox):
Chong Yidong wrote:
> Paul Pogonyshev <p.pogonyshev <at> anakreon.net> writes:
>
> > So, to reproduce:
> > - enable ido-mode;
> > - try hitting C-x C-f, navigate into a particularly large directory
> > and hit C-g while completion list is being built.
> >
> > You may need to repeat the second step several times as the bug
> > doesn't seem to deterministic.
>
> Some something like
>
> M-x ido-mode RET
> C-x C-f /usr/bin/a TAB
>
> should produce the bug? I haven't been able to see it this way.
Sorry, I tried now with 'emacs -Q' and found a corrected way:
M-x ido-mode RET enable ido
C-x C-f / / this makes ido load tramp
C-g abort loading
You need to be quick to hit C-g while tramp is still loading. After
this file opening stops working just as described, at least here.
I managed to reproduce this three times in a row (each time with a
fresh 'emacs -Q', since the previous becomes useless).
Paul
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5705
; Package
emacs
.
(Thu, 11 Mar 2010 17:37:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 5705 <at> debbugs.gnu.org (full text, mbox):
Paul Pogonyshev <p.pogonyshev <at> anakreon.net> writes:
> Sorry, I tried now with 'emacs -Q' and found a corrected way:
>
> M-x ido-mode RET enable ido
> C-x C-f / / this makes ido load tramp
> C-g abort loading
>
> You need to be quick to hit C-g while tramp is still loading. After
> this file opening stops working just as described, at least here.
OK, I see the problem.
If you C-g while Tramp is loading, it leaves Tramp in a half-loaded
state, which screws up all subsequent calls to tramp-tramp-file-p (Lisp
backtrace below). The eval-after-load in tramp.el seems to be the
culprit.
Michael, could you take a look?
Debugger entered--Lisp error: (error "Recursive load" "/home/cyd/emacs/lisp/net/tramp.elc" "/home/cyd/emacs/lisp/net/tramp-cmds.elc" "/home/cyd/emacs/lisp/net/tramp.elc" "/home/cyd/emacs/lisp/net/tramp-cmds.elc" "/home/cyd/emacs/lisp/net/tramp.elc" "/home/cyd/emacs/lisp/net/tramp-cmds.elc" "/home/cyd/emacs/lisp/net/tramp.elc" "/home/cyd/emacs/lisp/net/tramp-cmds.elc" "/home/cyd/emacs/lisp/net/tramp.elc")
require(tramp)
require(tramp-cmds)
(catch (quote tramp-loading) (require feature) (add-hook (quote tramp-unload-hook) (\` ...)))
(progn (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(if feature (progn (catch ... ... ...) (unless ... ...)))
(when feature (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(while --dolist-tail-- (setq feature (car --dolist-tail--)) (when feature (catch ... ... ...) (unless ... ...)) (setq --dolist-tail-- (cdr --dolist-tail--)))
(let ((--dolist-tail-- ...) feature) (while --dolist-tail-- (setq feature ...) (when feature ... ...) (setq --dolist-tail-- ...)))
(dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...)))
eval((dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
eval-after-load("tramp" (dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
byte-code("\300\301\302\"\210\303\304\305\"\210\306\307\310\"\210\311\312\313\314\315\316\317\320&\207" [add-hook tramp-unload-hook #[nil "\300\301!\205\n\302\301\303\"\207" [featurep tramp-uu unload-feature force] 3] autoload uudecode-decode-region "uudecode" eval-after-load "tramp" (dolist (feature ...) (when feature ... ...)) custom-declare-group tramp nil "Edit remote files with a combination of rsh and rcp or similar programs." :group files :version "22.1"] 8)
require(tramp)
require(tramp-cmds)
(catch (quote tramp-loading) (require feature) (add-hook (quote tramp-unload-hook) (\` ...)))
(progn (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(if feature (progn (catch ... ... ...) (unless ... ...)))
(when feature (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(while --dolist-tail-- (setq feature (car --dolist-tail--)) (when feature (catch ... ... ...) (unless ... ...)) (setq --dolist-tail-- (cdr --dolist-tail--)))
(let ((--dolist-tail-- ...) feature) (while --dolist-tail-- (setq feature ...) (when feature ... ...) (setq --dolist-tail-- ...)))
(dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...)))
eval((dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
eval-after-load("tramp" (dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
byte-code("\300\301\302\"\210\303\304\305\"\210\306\307\310\"\210\311\312\313\314\315\316\317\320&\207" [add-hook tramp-unload-hook #[nil "\300\301!\205\n\302\301\303\"\207" [featurep tramp-uu unload-feature force] 3] autoload uudecode-decode-region "uudecode" eval-after-load "tramp" (dolist (feature ...) (when feature ... ...)) custom-declare-group tramp nil "Edit remote files with a combination of rsh and rcp or similar programs." :group files :version "22.1"] 8)
require(tramp)
require(tramp-cmds)
(catch (quote tramp-loading) (require feature) (add-hook (quote tramp-unload-hook) (\` ...)))
(progn (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(if feature (progn (catch ... ... ...) (unless ... ...)))
(when feature (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(while --dolist-tail-- (setq feature (car --dolist-tail--)) (when feature (catch ... ... ...) (unless ... ...)) (setq --dolist-tail-- (cdr --dolist-tail--)))
(let ((--dolist-tail-- ...) feature) (while --dolist-tail-- (setq feature ...) (when feature ... ...) (setq --dolist-tail-- ...)))
(dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...)))
eval((dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
eval-after-load("tramp" (dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
byte-code("\300\301\302\"\210\303\304\305\"\210\306\307\310\"\210\311\312\313\314\315\316\317\320&\207" [add-hook tramp-unload-hook #[nil "\300\301!\205\n\302\301\303\"\207" [featurep tramp-uu unload-feature force] 3] autoload uudecode-decode-region "uudecode" eval-after-load "tramp" (dolist (feature ...) (when feature ... ...)) custom-declare-group tramp nil "Edit remote files with a combination of rsh and rcp or similar programs." :group files :version "22.1"] 8)
require(tramp)
require(tramp-cmds)
(catch (quote tramp-loading) (require feature) (add-hook (quote tramp-unload-hook) (\` ...)))
(progn (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(if feature (progn (catch ... ... ...) (unless ... ...)))
(when feature (catch (quote tramp-loading) (require feature) (add-hook ... ...)) (unless (featurep feature) (message "Loading %s failed, ignoring this package" feature)))
(while --dolist-tail-- (setq feature (car --dolist-tail--)) (when feature (catch ... ... ...) (unless ... ...)) (setq --dolist-tail-- (cdr --dolist-tail--)))
(let ((--dolist-tail-- ...) feature) (while --dolist-tail-- (setq feature ...) (when feature ... ...) (setq --dolist-tail-- ...)))
(dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...)))
eval((dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
eval-after-load("tramp" (dolist (feature (list ... ... ... ... ... ... ...)) (when feature (catch ... ... ...) (unless ... ...))))
byte-code("\300\301\302\"\210\303\304\305\"\210\306\307\310\"\210\311\312\313\314\315\316\317\320&^G\207" [add-hook tramp-unload-hook #[nil "\300\301!\205\n\302\301\303\"\207" [featurep tramp-uu unload-feature force] 3] autoload uudecode-decode-region "uudecode" eval-after-load "tramp" (dolist (feature ...) (when feature ... ...)) custom-declare-group tramp nil "Edit remote files with a combination of rsh and rcp or similar programs." :group files :version "22.1"] 8)
tramp-tramp-file-p("/home/cyd/emacs/admin/ChangeLog")
tramp-find-foreign-file-name-handler("/home/cyd/emacs/admin/ChangeLog")
tramp-set-auto-save()
run-hooks(find-file-hook)
after-find-file(nil t)
find-file-noselect-1(#<buffer ChangeLog> "~/emacs/admin/ChangeLog" nil nil "~/src/emacs/emacs-23/admin/ChangeLog" (3499012 2054))
find-file-noselect("/home/cyd/emacs/admin/ChangeLog" nil nil)
ido-file-internal(raise-frame)
ido-find-file()
call-interactively(ido-find-file nil nil)
Forcibly Merged 1529 5705.
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Thu, 11 Mar 2010 17:52:02 GMT)
Full text and
rfc822 format available.
Removed tag(s) moreinfo.
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Fri, 12 Mar 2010 17:08:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org
:
bug#5705
; Package
emacs
.
(Sat, 13 Mar 2010 19:55:02 GMT)
Full text and
rfc822 format available.
Message #21 received at 5705 <at> debbugs.gnu.org (full text, mbox):
Chong Yidong <cyd <at> stupidchicken.com> writes:
> Paul Pogonyshev writes:
>
>> Sorry, I tried now with 'emacs -Q' and found a corrected way:
>>
>> M-x ido-mode RET enable ido
>> C-x C-f / / this makes ido load tramp
>> C-g abort loading
>>
>> You need to be quick to hit C-g while tramp is still loading. After
>> this file opening stops working just as described, at least here.
>
> OK, I see the problem.
Unfortunately, my machine is too fast to interrupt Tramp during loading.
Or I am too old, or too slow; pick whatever you want.
> If you C-g while Tramp is loading, it leaves Tramp in a half-loaded
> state, which screws up all subsequent calls to tramp-tramp-file-p (Lisp
> backtrace below). The eval-after-load in tramp.el seems to be the
> culprit.
>
> Michael, could you take a look?
Looks to me like a similar problem as bug#1529 and bug#5448. As already
said there, a clean solution requires a new arrangement of Tramp's
package dependencies. This I would like to take out of Emacs 23.2.
Next days, I'll release Tramp 2.1.18 (this is what is bundled with Emacs
23.2). Afterwards, I'll start working on the pending problems dedicated
for after-the-release. Given, that I'll be offline for 3 weeks (starting
March 20), it will last until mid of April or so.
Best regards, Michael.
Reply sent
to
Glenn Morris <rgm <at> gnu.org>
:
You have taken responsibility.
(Fri, 10 Sep 2010 06:37:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Paul Pogonyshev <p.pogonyshev <at> anakreon.net>
:
bug acknowledged by developer.
(Fri, 10 Sep 2010 06:37:03 GMT)
Full text and
rfc822 format available.
Message #26 received at 5705-done <at> debbugs.gnu.org (full text, mbox):
Version: 24.1
2010-09-08 Michael Albinus <michael.albinus at gmx.de>
Migrate to Tramp 2.2. Rearrange load dependencies.
(Bug#1529, Bug#5448, Bug#5705)
Reply sent
to
Glenn Morris <rgm <at> gnu.org>
:
You have taken responsibility.
(Fri, 10 Sep 2010 06:37:03 GMT)
Full text and
rfc822 format available.
Notification sent
to
trentbuck <at> gmail.com
:
bug acknowledged by developer.
(Fri, 10 Sep 2010 06:37:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Fri, 08 Oct 2010 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 14 years and 253 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.