bug-gnu-emacs
[Top][All Lists]
Advanced

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

Re: SIGABRT while using Emacs


From: Alex Schroeder
Subject: Re: SIGABRT while using Emacs
Date: Sun, 15 Jul 2001 19:33:23 +0200
User-agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/20.7

Some more info.  The crash can be reproduced by using the eshell-smart
module in eshell.  Basically, start Emacs, evaluate the following, and
at the eshell prompt, type *as fast as possible* ls RET C-x C-f.  The
key seems to be to call anything that requires the minibuffer while
eshell is still producing output.  Obviously I think it still is an
Emacs bug and not an eshell bug because Emacs crashes.  :)

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
 '(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic 
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred 
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra))))
(eshell)

Here's how I start emacs -q:

alex@snail:~ > cd /usr/local/src/emacs-20.7/src/
alex@snail:/usr/local/src/emacs-20.7/src > gdb emacs
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-suse-linux"...
DISPLAY = :0
TERM = xterm
Breakpoint 1 at 0x80981a6: file emacs.c, line 284.
Breakpoint 2 at 0x8088b12: file xterm.c, line 5335.
(gdb) run -q --no-site-file
Starting program: /usr/local/src/emacs-20.7/src/emacs -q --no-site-file

Then I evaluated the following in my *scratch* buffer:

(global-font-lock-mode 1)

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)

(add-to-list 'load-path "~/elisp")
(require 'color-theme)
(color-theme-robin-hood)

(add-hook 'eshell-mode-hook
          (lambda ()
            (define-key eshell-mode-map (kbd "<up>") 'previous-line-nomark)
            (define-key eshell-mode-map (kbd "<down>") 'next-line-nomark)
            ;; (define-key eshell-mode-map (kbd "C-d") 'eshell-maybe-exit)
            (add-to-list 'eshell-ls-highlight-alist
                         (cons (lambda (file attr)
                                 (string-match 
"\\.\\(jpe?g\\|png\\|gif\\|fig\\|e?ps\\)$" file))
                               'eshell-ls-picture-face))
            (add-to-list 'eshell-ls-highlight-alist
                         (cons (lambda (file attr)
                                 (string-match "\\.\\(bug\\|todo\\)$" file))
                               'eshell-ls-todo-face))
            (add-to-list 'eshell-ls-highlight-alist
                         (cons (lambda (file attr)
                                 (string-match "\\.\\(html?\\|txt\\)$" file))
                               'eshell-ls-text-face))))

(custom-set-variables
 '(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic 
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred 
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra)))
 '(eshell-error-if-move-away nil)
 '(eshell-rebind-keys-alist (quote (([(control 97)] . eshell-bol) ([home] . 
eshell-bol) ([(control 100)] . eshell-delchar-or-maybe-eof) ([backspace] . 
eshell-delete-backward-char) ([(control 119)] . backward-kill-word) ([(control 
117)] . eshell-kill-input))))
 '(eshell-last-dir-ring-size 10)
 '(eshell-where-to-jump (quote begin))
 '(eshell-confine-point-to-input nil)
 '(eshell-remap-previous-input nil)
 '(eshell-hist-ignoredups t)
 '(eshell-review-quick-commands t)
 '(eshell-ask-to-save-history (quote always)))
(eshell)

While looking at the eshell prompt, I try C-x C-f and it gives me the
prompt I am looking for in the minibuffer.

At the eshell prompt, I then type "ls" and hit RET.

I try C-x C-f again, and Emacs gets the SIGABRT.

I then started playing around, trying to see wether this is
reproducible.  This is more of a log file, as I haven't found the
exact moment.

The current directory is the emacs src directory.  When I evaluated
the elisp code above and did a ls, the error didn't happen.

When I evaluated the code in the scratch buffer, and hit "cd" RET "ls"
RET, and then C-x C-f, it happened.  This is the contents of my home
directory:

/home/alex $ ls
#.bbdb#                     c64                       lynx_bookmarks.html
#.newsrc-dribble#           chiro.html                lynx_bookmarks.html~
2001_06_16_014839_shot.png  color-theme.el            man
2001_06_16_015054_shot.png  diary                     megasth.htm
2001_06_16_193139_shot.png  dotion.tar.gz             nsmail
2001_06_17_170355_shot.png  elisp                     parrot-0.2.6.tgz
Desktop                     ell.html                  periplus.htm
EmacsWiki                   emacs.bug                 perllib
Mail                        emacs.bug~                pics
Meatball                    emshort-bashes-troll.txt  pkginfo
NT-bookmarks.html           emshort-explains-if.txt   pliny.htm
News                        ffglass_pr.html           projects
Notes                       gatto2.htm                src
SMAIL                       host                      stow
WWW                         india.html                strabo.htm
Wiki                        indiabib.htm              strabo.html
XF86Config                  info                      test~
ace                         keshan                    texte
alex@snail:~                ll-fld-test.el            tmp
applets                     ll-fld-test.el~           xhtml11.html
archive.tar.gz              ll-fld-test.tex           xinitrc
arrian.htm                  ll-fld-test.txt           xsession
atlantis                    ll-fld-test.txt~          
bin                         longlines.el              

I then repeated the same again.  I evaluated the code in the scratch
buffer, and hit "cd" RET "ls" RET, and then I waited a few seconds
before hitting C-x C-f.  The error did not happen.

Repeat again and hit l s RET C-x C-f in one go, however, the error
does happen.  An idle timer problem?  Something related to font-lock
changing buffers on an idle timer which runs even if I'm in a mini
buffer?

I then evaluated the code in the scratch buffer, did a ls (of the
emacs source directory), then a cd (home) and then a C-x C-f and the
error did happen (without ever listing my home directory, so it
doesn't seem to be related to the files but to the "speed" of typing.
When eshell output appears, I may not type C-x C-f?

So I tried again.  Evaluated the code in the scratch buffer, and at
the eshell prompt I just typed as fast as possible c d RET C-x C-f --
and the error happened.

Then I tried to reduce the amount of elisp required.

(global-font-lock-mode 1)

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)

(custom-set-variables
 '(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic 
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred 
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra)))
 '(eshell-error-if-move-away nil)
 '(eshell-rebind-keys-alist (quote (([(control 97)] . eshell-bol) ([home] . 
eshell-bol) ([(control 100)] . eshell-delchar-or-maybe-eof) ([backspace] . 
eshell-delete-backward-char) ([(control 119)] . backward-kill-word) ([(control 
117)] . eshell-kill-input))))
 '(eshell-last-dir-ring-size 10)
 '(eshell-where-to-jump (quote begin))
 '(eshell-confine-point-to-input nil)
 '(eshell-remap-previous-input nil)
 '(eshell-hist-ignoredups t)
 '(eshell-review-quick-commands t)
 '(eshell-ask-to-save-history (quote always)))
(eshell)

Sure enough, this also caused the error.  At the eshell prompt I just
typed as fast as possible c d RET C-x C-f -- and the error happened.

More reducing:

(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(eshell)

Now I was unable to reproduce the error.

(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
 '(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic 
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred 
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra))))
(eshell)

With this setup, eshell starts in the emacs source directory, I type
c d RET C-x C-f and no problem, but then I then add l s RET C-x C-f
the problem happens.  Maybe the ls is "slow" enough?  Anyway.  Trying
to reduce it even more.

The default value of the modules list seems to be this:

(eshell-alias eshell-banner eshell-basic eshell-cmpl eshell-dirs
eshell-glob eshell-hist eshell-ls eshell-pred eshell-prompt
eshell-script eshell-term eshell-unix)

The only differences are eshell-smart and eshell-xtra.

Any ideas?

I did some further testing.  If, after letting eshell produce some
output, I do something else involving the minibuffer, such as hitting
ESC x, the error also happens.  Using the following:

(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
 '(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic 
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred 
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra))))
(eshell)

Anyway, back to using C-x C-f.  Here's without using eshell-smart and
without global-font-lock-mode (since eshell seems to switch it on,
anway).

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
 '(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic 
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred 
eshell-prompt eshell-script eshell-term eshell-unix eshell-xtra))))
(eshell)

I was unable to reproduce the error.

Alex.
-- 
http://www.geocities.com/kensanata/
Coffee should be black as hell, strong as death and sweet as love.
        -- Turkish proverb



reply via email to

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